为什么我们可以定制ctors& dtors但不是访问者?

时间:2018-03-04 22:03:17

标签: c++ oop getter-setter accessor customization-point

(这是关于重载运算符的问题。一般来说。)

我们知道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

我的问题是:

  • 从历史上看,为什么这个语句没有与可自定义的拷贝构造函数,赋值运算符和析构函数一起添加到语言中?
  • 这样的事情是否已正式提出?如果是这样,它的状态或原因是什么被拒绝了?
  • 对于这样的方案是否存在重大损害,除了:1。编译速度较慢和2.无法“信任”my_a.x中的句点只是一个普通的访问?

0 个答案:

没有答案