VC++--此声明没有存储类或类型说明符
VC++ -- This declaration has not storage class or type specifier
我得到这个erorr:VC++——这个声明在以下行中没有存储类或类型说明符:
towerControl.push_back() = new Boeing;
有人能指出出了什么问题吗?谢谢
#include <iostream>
#include <vector>
using namespace std;
class Aircraft {
public:
virtual void disp() { cout << "I'm an aircraftn"; }
virtual ~Aircraft() { cout << "Aircraft::Destructorn"; }
};
class Boeing: public Aircraft {
public:
void disp() { cout << "I'm a Boeingn"; }
~Boeing() { cout << "Boeing::Destructorn"; }
};
class Airbus: public Aircraft {
public:
void disp() { cout << "I'm an Airbusn"; }
~Airbus() { cout << "Airbus::Destructorn"; }
};
class Tower {
public:
vector <Aircraft*> towerControl;
towerControl.push_back() = new Boeing;
towerControl.push_back() = new Airbus;
~Tower() { cout << "Tower::Destructorn"; }
};
int main() {
Tower T;
}
当然。语法错误。应该是:
towerControl.push_back(new Boeing);
您还需要在Tower
的成员内部调用它,可能是一个构造函数:
class Tower {
public:
vector <Aircraft*> towerControl;
Tower()
{
towerControl.push_back(new Boeing);
towerControl.push_back(new Airbus);
}
~Tower() { cout << "Tower::Destructorn"; }
};
在我看来,你需要开始学习C++的基础知识。
towerControl.push_back() = new Boeing;
towerControl.push_back() = new Airbus;
向量的push_back()
函数不返回任何内容。它所做的只是接受一个要被推入向量的参数。因此,您实际上没有在push_back()语句中设置任何内容。
towerControl.push_back(new Boeing);
towerControl.push_back(new Airbus);
应该还可以。
PS:在类声明的那个部分赋值可能吗?犯错误
相关文章:
- 缺少类型说明符,显式类型为"缺少错误"
- 与 tesseract::TessBaseApi() 相关的 Tesseract-OCR 出错(预期的类型说明符)
- 为什么转换函数声明不需要至少一个定义类型说明符
- C++需要所有声明的类型说明符和预期的非限定 id(需要调试帮助)
- printf 数据类型说明符复杂问题
- C++错误:"class name"之前的预期类型说明符
- 缺少类型说明符和另一个问题
- 缺少类型说明符 - 假定为 int.注意 c++ 不支持 default-int
- 错误:C4430:缺少类型说明符-假定为int.注意:C++不支持default-int
- 在C++中出现错误之前,无效使用了不完整的类型和所需的类型说明符
- 缺少类型说明符 - int 假定 声明静态成员后出错
- 不能在类型说明符中定义联合
- 没有带有字符串数组的存储类或类型说明符
- 警告:函数使用不带尾随返回类型的'auto'类型说明符
- 仅为某些模板专用化定义转换运算符:预期类型/预期类型说明符
- 在 C++ 中出现unique_ptr错误之前的预期类型说明符
- 有没有办法将类型说明符存储在变量中
- C 期望类对象的类型说明符
- 是无符号的int"简单类型说明符"
- 在 vscode 上编译错误.类型说明符是 C++11 扩展