在使用两种不同的方法初始化继承类中的成员数据时,我有一个错误我无法理解,我认为它们在理论上应该是相同的。
class gSolObject
{
public:
gSolObject();
virtual ~gSolObject(){}
bool isCollisionObject;
};
class gPlanetObject : public gSolObject
{
public:
gPlanetObject();
~gPlanetObject(){};
};
gSolObject::gSolObject():isCollisionObject(1)
{
}
gPlanetObject::gPlanetObject():gSolObject(),isCollisionObject(0)
{
}
我得到一个错误类“ gPlanetObject”没有任何名为“isCollisionObject ”的字段。
但是,当我将初始化直接放入构造函数的括号 {..} 中时:
gPlanetObject::gPlanetObject():gSolObject()
{
isCollisionObject=0;
}
它编译得很好。为什么会这样?
编辑:这也不起作用
gPlanetObject::gPlanetObject():gSolObject(),gSolObject::isCollisionObject(0)
它在 '(' token' 之前写入'expected class-name'