【发布时间】:2017-03-15 05:41:48
【问题描述】:
当我在operator overloading 上查找书籍和堆栈溢出文章时,我发现了以下内容:
当重载运算符是成员函数时, this 绑定到 左操作数。成员运算符函数少一个(显式) 参数比操作数的数量。
(Addison Wesley,C++ 入门)
所以我的问题是,由于*(取消引用)运算符没有任何左操作数,它如何获取其参数(即对象本身或this)?
【问题讨论】:
-
我没有找到任何可靠的来源表明重载的一元运算符成员函数将在需要时将右手操作数作为隐式参数。
-
它是一个一元运算符,它对跟随它的值进行操作
-
作为一个附加问题,如果将重载的 * 运算符定义为非成员函数与成员函数,它的使用方式会有什么不同吗?
标签: c++ operator-overloading smart-pointers dereference template-function