我在Visual Studio上使用C++运行以下代码:
headfile.h:
#ifndef HEADFILE_H
#define HEADFILE_H
#pragma once
template<typename ob>
class Queue
{
private:
enum MyEnum
{
MAX = 10
};
struct object
{
ob thisob;
object* next;
};
object* front;
object* rear;
int many;
const int Max;
public:
Queue(int max = MAX) : Max(max) {
front = rear = nullptr;
}
~Queue() {
}
bool inqueue(ob& in) {
if (many >= Max) {
return false;
}
many++;
object* add = new object{in, nullptr}
if (front == nullptr) {
front = add;
return true;
}
rear->next = add;
rear = add;
return true;
}
bool outqueue(ob & out) {
if (empty()) {
return false;
}
object* temp = front;
front = front->next;
delete temp;
many--;
if (front == nullptr) {
rear = nullptr;
}
return true;
}
bool full() {
return many == Max;
}
bool empty() {
return many == 0;
}
int howmany() {
return many;
}
};
#endif // !HEADFILE_H
use.cpp:
#include <iostream>
#include "headfile.h"
int main() {
Queue<int> queue;
int d;
int output;
std::cout << "enter 5 int";
for (int i; i < 5; i++) {
std::cin >> d;
queue.inqueue(d);
}
for (int i; i < 5; i++) {
std::cout << queue.outqueue(output);
}
}
出现如下错误:
严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息
错误 C1001 内部编译器错误。
(编译器文件“D:\a_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\error.h”,第 1291 行)
要解决此问题,请尝试简化或更改上面所列位置附近的程序。
如果可以,请在此处提供重现步骤: https://developercommunity.visualstudio.com/
请选择 Visual C++
“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息。 myC++ D:\myC++\myC++\headfile.h 67