我已经实现了 int
的集合。我想要 []
运算符的版本:
- 返回
int
的一个,当需要rvalue
时使用。例如,当用户尝试读取集合中的给定位置时。如果该位置的元素不存在,则抛出异常。 - 返回
int&
的一个,当需要lvalue
时使用,用于在给定位置存储值。如果这个位置的元素不存在,函数应该为它分配空间。
这样做的惯用方式是什么?
最佳答案
我不明白你为什么需要它 - 据我所知,左值可以转换为右值,所以一个 int& operator[]
应该足够了。
不可能有两个具有相同名称和相同参数列表的函数,即使它们具有不同的返回类型也是如此。
如果您确实需要两种方法,可以在其中一个应用程序中使用 operator()
。
关于c++ - 用于右值和左值情况的 [] 运算符的两个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24694573/