VC++--此声明没有存储类或类型说明符

VC++ -- This declaration has not storage class or type specifier

本文关键字:类型 说明符 存储 声明 VC++--      更新时间:2023-10-16

我得到这个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:在类声明的那个部分赋值可能吗?犯错误