二级C++考试的第一个选择题
来源:百度知道 编辑:UC知道 时间:2024/07/02 17:07:29
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是______。
A)operator+有两个参数,operator*有两个参数
B)operator+有两个参数,operator*有一个参数
C)operator+有一个参数,operator*有两个参数
D)operator+有一个参数,operator*有一个参数
答案是B
为什么??????
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,查了半天书!就像楼上说的一样!
你最好在核对下答案!