gpt4 book ai didi

c++ - 如何使用重载运算符 [] 为左侧赋值?

转载 作者:太空狗 更新时间:2023-10-29 23:47:14 25 4
gpt4 key购买 nike

我做了以下代码:-

class A{
bool bFlag[2];
public:
A(){
for(int i = 0; i < 2; i++)
bFlag[i] = false;
}

bool operator[](int r){ //i know how to assign value to R.H.S using operator[]
if( r >= 0 || r < 2 ){
bFlag[r] = true;
return bFlag[r];
}
return false;
}
};

int main(){
A obj;
bool x;
x = obj[0]; //this i know
//obj[1] = x; //how to do this is my doubt?
return 0;
}

我不知道使用 operator[] 将值设置为 L.H.S。请指导我如何将 x 值设置为 obj[1]

最佳答案

要将 [] 用作左值,您重载的 [] 应该通过引用返回。

可以返回对私有(private)成员的引用吗?
,非常好。
如果您看到 STL,大多数 STL 类都会这样做。
规则是,如果您不希望用户修改那里的内容,或者如果您想让用户修改它,您可以返回一个 non const 引用。

您基本上通过将类的用户设为private 来向类的用户隐藏(抽象)类的详细信息,但您仍然提供能够修改单个元素的功能。

关于c++ - 如何使用重载运算符 [] 为左侧赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6692982/

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