我正在为C ++做get,put属性并陷入困境。
这是我的代码:
标题文件:
class Battery {
public:
__declspec (property (put = SetCharge, get = GetCharge)) int Charge;
private:
int _charge;
};
和cpp文件:
int GetCharge() {
return _charge;
}
void SetCharge(int charge) {
_charge = charge;
}
我收到的错误是_charge是未声明的变量。
我真的不明白为什么!有人可以帮助我吗?
答案 0 :(得分:5)
以这种方式纠正您的.cpp文件:
int Battery::GetCharge() {
return _charge;
}
void Battery::SetCharge(int charge) {
_charge = charge;
}
答案 1 :(得分:2)
我认为你不能将这两个功能与你的班级联系起来。有两种方法可以做到这一点,第一种方法是第一次使用,第二种是内联方式:
class Battery {
public:
int Battery GetCharge() {return _charge;}
void Battery::SetCharge(int charge) { _charge=charge;}
private:
int _charge;
};
我认为这工作......
答案 2 :(得分:0)
除了使用范围解析运算符定义两个函数之外,还应在类定义中包含GetCharge和SetCharge:
class Battery {
public:
__declspec (property (put = SetCharge, get = GetCharge)) int Charge;
int GetCharge();
void SetCharge(int charge);
private:
int _charge;
};