我在使用两种不同的方法初始化继承类中的成员数据时我无法理解,我认为它们在理论上应该是相同的.
class gSolObject
{
public:
gSolObject();
virtual ~gSolObject(){}
bool isCollisionObject;
};
class gPlanetObject : public gSolObject
{
public:
gPlanetObject();
~gPlanetObject(){};
};
gSolObject::gSolObject():isCollisionObject(1)
{
}
gPlanetObject::gPlanetObject():gSolObject(),isCollisionObject(0)
{
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误类' gPlanetObject'没有任何名为'isCollisionObject '的字段.
但是,当我将初始化权限放入构造函数的括号{..}时:
gPlanetObject::gPlanetObject():gSolObject()
{
isCollisionObject=0;
}
Run Code Online (Sandbox Code Playgroud)
它汇编很好.那为什么会这样?
编辑:这也行不通
gPlanetObject::gPlanetObject():gSolObject(),gSolObject::isCollisionObject(0)
Run Code Online (Sandbox Code Playgroud)
它写''之前的'期望的类名'('令牌'