如何覆盖setter?

时间:2015-02-14 06:25:32

标签: c++

我的班级里有一个私人财产,我想在其setter上添加一些代码,我该如何实现呢?

我可以使用方法做到这一点,但我不想只是为了避免使用属性。

private:
    float damage;

1 个答案:

答案 0 :(得分:1)

您可以使用类类型替换普通旧数据类型,以执行您想要的操作:

class Damage
{
public:
    Damage& operator=(float x) { value = x; /* add code here*/ }
    operator float() const { return value; }

private:
    float value;
};

然后只需将float替换为Damage即可让您按照自己的意愿行事。