gpt4 book ai didi

c++ - 由于 const 成员,'operator =' 函数不可用

转载 作者:行者123 更新时间:2023-11-28 00:46:32 32 4
gpt4 key购买 nike

处理这个问题的最佳方法是什么?我希望“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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com