ISO C++禁止声明无类型的'Stack'
ISO C++ forbids declaration of 'Stack' with no type
下面是一个堆栈结构的头文件。我不明白的是这个错误,它卡住了我:
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..
};
有人知道这个错误是什么意思吗?
Stack& operator = (const& Stack)
应为Stack& operator = (const Stack&)
你不能有一个指向引用的指针或引用数组或任何东西,所以编译器认为&
必须结束声明的类型部分,下面的Stack
必须是参数名。然而,在const&
中没有类型,所以编译器说你不能声明没有类型的参数Stack
。在旧版本的C中,有时会在可以出现类型但被省略的上下文中推断类型int
,这就是为什么错误讨论ISO c++禁止这样做的原因。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 将'Stack'重新定义为不同类型的符号
- Stack.h:13:3:错误:“单元格”未命名类型
- 无限循环,同时在 STACK 中输入不同的数据类型值
- ISO C++禁止声明无类型的'Stack'