处理这个问题的最佳方法是什么?我希望“x”保持常量。
class Foo
{
public:
Foo(int x) : x(x) { }
const int x;
};
void main()
{
Foo a(0), b(1);
b = a; // error C2582: 'operator =' function is unavailable in 'Foo'
}
最佳答案
将 x
设为私有(private)。添加一个公共(public)函数,例如 int getX()
以返回值。例如:
class Foo
{
public:
Foo(int x) : _x(x) {}
int getX(){return _x;}
private:
int _x;
};
现在更改 x 的唯一方法是调用构造函数,这是您想要的行为(我认为)。
关于c++ - 由于 const 成员,'operator =' 函数不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16007782/