设c1和c2是类MyClass的对象,若将运算符"+"和"*"作为类MyClass的成员函数重载,则表达式c1+c2*c1等价于

admin2015-07-22  55

问题 设c1和c2是类MyClass的对象,若将运算符"+"和"*"作为类MyClass的成员函数重载,则表达式c1+c2*c1等价于

选项 A、c1.operaor*(c2.operator+(c1))
B、c1.operator+(c2.operator*(c1))
C、c1.operator*(c1.operator+(c2))
D、c1.operator+(c1.operator*(c2))

答案B

解析 由于重载运算符并不改变运算符的优先级,所以c1+c2*c1首先进行c2*c1运算,由于c2是运算符"*"的左操作数,所以c2*c1相当于c2对象调用重载运算符函数operator*,参数为c1,即c2.operator*(c1);同理c1作为运算符"+"的左操作数,c1+c2*c1相当于c1对象调用重载运算符函数operator+,参数为c2*c1,即c1.operator+(c2.operator*(c1)),答案为B。
转载请注明原文地址:https://kaotiyun.com/show/5yNp777K
0

最新回复(0)