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

admin2020-07-23  7

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

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

答案C

解析 运算符重载为成员函数的形式:“函数类型operator运算符(形参表){函数体;}”;运算符重载为友元函数的形式:“friend函数类型operator运算符(形参表){函数体;}”。一般来讲,单目运算符最好重载为成员函数,双目运算符最好重载为友元函数。运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即“y.operator*(z)”或者“operator*(y,z)”;另一种是通过运算符构成表达式,即“y*z”。
转载请注明原文地址:https://kaotiyun.com/show/y2yp777K
0

最新回复(0)