ISO C禁止声明’Stack’没有类型

我已经设置了以下头文件来创建一个使用数组的Stack.我在第7行得到以下内容:

error: ISO C++ forbids declaration of ‘Stack” with no type.

我认为类型是输入值.感谢您的帮助.谢谢.

#ifndef ARRAYSTACKER_H_INCLUDED
#define ARRAYSTACKER_H_INCLUDED
// ArrayStacker.h: header file
class ArrayStack {
    int MaxSize;
    int EmptyStack;
    int top;
    int* items;
public:
    Stacker(int sizeIn);
    ~Stacker();
    void push(int intIn);
    int pop();
    int peekIn();
    int empty();
    int full();
};
#endif // ARRAYSTACKER_H_INCLUDED
最佳答案
错误:ISO C禁止声明没有类型的“标识符”. error表示声明的标识符类型或标识符本身是尚未找到声明的类型.

例如,如果您在代码中编写了以下内容:

ArrayStack Stack;

如果您未能包含定义“ArrayStack”的标头,则上面的行会给您带来这样的错误.如果您不小心使用了Stack而不是ArrayStack(例如,在声明变量或将其用作函数的返回类型时等)时,您也会遇到这样的错误.我还应该指出,你的标题有一个相当明显的错误,你可能想要纠正;类的构造函数和析构函数必须与类的名称匹配.编译器会变得困惑,因为当它看到“Stacker”时,它会把它解释为一个名为“Stacker”的函数,你只是忘了给它一个返回类型(它不会意识到你实际意味着因为它是构造函数,并且简单地误导了它).

转载注明原文:ISO C禁止声明’Stack’没有类型 - 代码日志