将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为( )。

admin2016-10-28  18

问题 将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为(    )。

选项 A、operator+(operator*(y,z))
B、x.operator+(operator*(y,z))
C、x.operator+(x*(y,z))
D、x+(operator*(y,z))

答案B

解析 在定义了重载运算符后的函数后,函数operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用friend对该函数进行声明,此函数就称为本类的友员函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以x+y*z被改写为“x.operator+(operator*(y,z))”。
转载请注明原文地址:https://kaotiyun.com/show/sKNp777K
0

最新回复(0)