二级C++考试的第一个选择题

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:07:29
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是______。

A)operator+有两个参数,operator*有两个参数
B)operator+有两个参数,operator*有一个参数
C)operator+有一个参数,operator*有两个参数
D)operator+有一个参数,operator*有一个参数

答案是B
为什么??????

如果你没有打错字 答案是 C
在 x+y*z 中
+是作为成员函数重载的运算符 x+y 是调用x对象的+号运算重载符 传递y参数

因为如果运算重载符作为类的成员函数的话 成员函数总是与类对象捆绑使用

的,被捆绑的对象就是被操作的第一个参数,所以单目重载符没有参数 双目重载符有一个参数

如果运算重载符不是成员函数的话 就没有以上限制 双目重载符 还是接受2个参数的

我觉得是C,成员函数重载的运算符只接受一个参数就够了

答案不对,正确的是C,支持楼上的两位.只要是成员函数的重载,就会少一个参数,即默认的This指针.所以成员重载肯定是一个参数.反之,非成员的就要两个参数了.

我觉得B不对!答案为C,查了半天书!就像楼上说的一样!
你最好在核对下答案!