类和类型的问题

时间:2011-04-23 05:57:30

标签: c++ class types

我有一个类,我正在尝试将其用作类型

class ship{
    public:
        vector <int> xp;
        vector <int> yp;
        vector <bool> pos;
        shipType vessel;
        bool active;
    ship(){}
    void randommethods(){
        blah;
    }
};

我想在一个舰队类中包含一个类型船的阵列。

class fleet{
    public:
        ship boat[7];
    boat(){}
};

我已将ship.h的头文件包含在fleet的源文件中,但它不识别将ship作为类型识别。

fleet.cpp:12: error: ISO C++ forbids declaration of ‘boat’ with no type
fleet.cpp:13: error: declaration of ‘int fleet::boat()’
fleet.cpp:11: error: conflicts with previous declaration ‘ship fleet::boat [7]’

我可以使用类似的声明来处理ship类型的变量和ship.cpp中的所有成员方法。我的错误是任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

在您的舰队类代码中,您声明名为boat的array of ship(商店船[7])和名为boat的function member returning int(boat(){})。您尝试在一个命名空间中声明两个具有相同名称的不同实体,这是错误。编译器试图告诉你的是什么。

我想你想为舰队类smth做一个默认的构造函数,如下所示:

class fleet{
    public:
        ship boat[7];
    fleet(){} //fleet, not boat
};