(这是不关于重载运算符的问题。一般来说。)
我们知道there are many good reasons to use setter and getter methods.
那么,我觉得这些不是成员访问的自定义点似乎很奇怪,即如果类A有一个数据成员x,那么在左值上下文中使用x实际上不会只使用x,而是调用一些默认为
的方法(比如A::get_x_lvalue()
,不要介意语法)
typename std::add_reference<decltype(x)>::type A::get_x_lvalue() { return x; }
并且可以实现为覆盖,类似地,当在prvalue常量中使用x时,将调用可覆盖的
decltype(x) A::get_x_prvalue() const { return x; }
......类似于how you do this in Javascript。
我的问题是: