我有一个类,我正在尝试将其用作类型
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中的所有成员方法。我的错误是任何帮助都会受到赞赏。
答案 0 :(得分:2)
在您的舰队类代码中,您声明名为boat的array of ship
(商店船[7])和名为boat的function member returning int
(boat(){})。您尝试在一个命名空间中声明两个具有相同名称的不同实体,这是错误。编译器试图告诉你的是什么。
我想你想为舰队类smth做一个默认的构造函数,如下所示:
class fleet{
public:
ship boat[7];
fleet(){} //fleet, not boat
};