0

我正在阅读 IBM 的以下文章:http: //publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp ?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fcplr323.htm ,

它提到:您使用没有参数的非静态成员函数或具有一个参数的非成员函数重载一元运算符。再举个例子如何重载它,但是为什么我们可以重载非静态mumber函数没有参数,但非成员函数只有一个参数?

4

2 回答 2

0

因为非静态成员函数对它自动通过this指针访问的实例进行操作。

非成员函数需要一个参数才能对实例执行某些操作。

于 2013-09-18T16:04:00.990 回答
0

一元运算符需要一个对象来执行操作。如果您有非成员运算符,则需要一个参数 - 这将是目标对象。如果您有成员运算符,则无需指定参数 - 它将作为this指针隐式传递 - 因此它将对调用此运算符的当前对象执行操作。

请记住 - 对于所有非静态成员函数,编译器始终将this指针作为不可见参数传递。

于 2013-09-18T16:04:25.287 回答