我有一个堆栈结构的头文件.我不明白的是这个错误让我感到困扰:
ISO C++禁止声明'Stack'没有类型
这是代码:
#include <stdexcept>
class Element;
class Stack{
public:
Stack():first(0){}; //constructor
~Stack(); //destructor
void push(int d);
int pop()throw(length_error);
bool empty();
private:
Element *first;
Stack(const& Stack){}; //copy constructor
Stack& operator = (const& Stack){}; //assignment operator..
};
Run Code Online (Sandbox Code Playgroud)
有没有人知道这个错误意味着什么?
Stack& operator = (const& Stack)
应该是Stack& operator = (const Stack&)
.
您不能拥有指向引用或引用数组或任何内容的指针,因此编译器认为&
必须结束声明的类型部分,并且以下内容Stack
必须是参数名称.但是没有类型,const&
所以编译器说你不能声明Stack
没有类型的参数.在旧版本的C中,类型int
有时在上下文中推断出类型可能会出现但被省略,这就是为什么错误会讨论ISO C++禁止它的原因.
归档时间: |
|
查看次数: |
4282 次 |
最近记录: |