Abh*_*eet 2 c++ operator-overloading
我做了以下代码: -
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;
}
Run Code Online (Sandbox Code Playgroud)
我不知道设定值L.H.S使用operator[].请指导我如何设置x值obj[1]
要[]用作左值,您的重载[]应该通过引用返回.
是否可以返回私人会员的引用?
是的,完全没问题.
如果您看到STL,大多数STL类都会这样做.
规则是,const如果您不希望用户修改其中的内容,或者如果您想允许用户修改它,您应该返回对私有成员的引用,您可以返回non const引用.
您基本上通过创建类的用户来隐藏(抽象)类的详细信息private,但您仍然提供了能够修改单个元素的功能.
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |