c ++ property undeclared变量

时间:2014-10-16 11:11:33

标签: c++ windows visual-c++

我正在为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是未声明的变量。

我真的不明白为什么!有人可以帮助我吗?

3 个答案:

答案 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;
};