Tak*_*aka 3 c++ visual-studio-2010
我正在做一些游戏,我得到以下错误:
class Apple:public Fruit{
public:
bool isAppleOK = false;
Apple(int amount, int pHValue) {
amount = amount;
pHValue= pHValue;
} ~Apple() {
}
/*code trimmed*/
Run Code Online (Sandbox Code Playgroud)
错误C2864:'Apple :: isAppleOK':只能在类中初始化静态const积分数据成员
我在这里错过了什么?
das*_*ght 11
这不是在C++中初始化成员变量的方式.您需要在构造函数的init列表中设置值:
Apple(int amount, int pHValue) : isAppleOK(false) {
amount = amount;
pHValue= pHValue;
}
Run Code Online (Sandbox Code Playgroud)
您还可以将其他变量的初始化移动到初始化列表中:
Apple(int amt, int pHv)
: isAppleOK(false)
, amount(amt)
, pHValue(pHv) {
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
你错过了这个:
只能在类中初始化静态const积分数据成员
是isAppleOk一个静态const积分成员Apple吗?不,这不对.在构造函数的初始化列表中初始化它.
class Apple {
public:
Apple() : isAppleOk(false) { }
private:
bool isAppleOk;
}
Run Code Online (Sandbox Code Playgroud)