Jon*_*ood 7 c++ operator-overloading
我正在写一个集合类.我想重载方括号运算符([])以提供对集合中元素的访问.
int operator[](int i)
{
// Do stuff here
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我没有看到如何写这个,以便我可以使用此运算符接受一个值:
myClassInstance[0] = value;
Run Code Online (Sandbox Code Playgroud)
我认为没有办法用附加参数声明方括号运算符(要赋给元素的值).
我知道我可以简单地返回int&并且调用者可以为其分配一个值,但在内部,每个元素的存储格式与公开的格式不同.
这甚至可能吗?
编写一个int_proxy可隐式转换int为可分配的类int.您至少需要两个成员函数:
operator int();
int_proxy& operator=(int);
Run Code Online (Sandbox Code Playgroud)
在此代理类中,存储您需要能够检索的任何信息并在容器中设置值.在转换运算符中进行检索以及在赋值运算符中进行赋值.
| 归档时间: |
|
| 查看次数: |
4874 次 |
| 最近记录: |