C++ VC++;——此声明没有存储类或类型说明符

C++ VC++;——此声明没有存储类或类型说明符,c++,inheritance,C++,Inheritance,我得到这个erorr:VC++--这个声明在以下行中没有存储类或类型说明符: towerControl.push_back() = new Boeing; 有人能指出哪里出了问题吗?谢谢 #include <iostream> #include <vector> using namespace std; class Aircraft { public: virtual void disp() { cout << "I'm an aircraft\n

我得到这个erorr:VC++--这个声明在以下行中没有存储类或类型说明符:

towerControl.push_back() = new Boeing;
有人能指出哪里出了问题吗?谢谢

#include <iostream>
#include <vector>
using namespace std;

class Aircraft {
public:
    virtual void disp() { cout << "I'm an aircraft\n"; }
    virtual ~Aircraft() { cout << "Aircraft::Destructor\n"; }
};

class Boeing: public Aircraft {
public:
    void disp() { cout << "I'm a Boeing\n"; }
    ~Boeing() { cout << "Boeing::Destructor\n"; }
};

class Airbus: public Aircraft {
public:
    void disp() { cout << "I'm an Airbus\n"; }
    ~Airbus() { cout << "Airbus::Destructor\n"; }
};

class Tower {
public:
    vector <Aircraft*> towerControl;
    towerControl.push_back() = new Boeing;
    towerControl.push_back() = new Airbus;
    ~Tower() { cout << "Tower::Destructor\n"; }
};

int main() {
    Tower T;
}
#包括
#包括
使用名称空间std;
等级飞机{
公众:

virtual void disp(){cout当然。语法错误。应该是:

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::Destructor\n"; }
};
等级塔{
公众:
矢量控制;
塔楼()
{
塔台控制。推回(新波音);
塔台控制。推回(新空中客车);
}
~Tower(){cout
vector的
push\u back()
函数不返回任何内容。它所做的只是接受一个要推送到向量中的参数。因此,您实际上没有在push\u back()语句中设置任何内容

towerControl.push_back(new Boeing);
towerControl.push_back(new Airbus);
应该很好用


PS:在类声明的这一部分可以赋值吗?呃…

不太可能。你不能只在类定义中写语句,然后期望它们工作。它们需要在上下文中。请参见我的答案。@LuchianGrigore:Edited:)编辑需要时间。你需要的是一本好书开始。
towerControl.push_back(new Boeing);
towerControl.push_back(new Airbus);