如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。

admin2019-06-12  31

问题 如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(    )。

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

答案C

解析 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即y.opemtor*(z)或者operator*(y,z);另一种是通过运算符构成表达式,即y*z。因为“++”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀“++”时必须多一个虚拟参数:int。
转载请注明原文地址:https://kaotiyun.com/show/sT8p777K
0

最新回复(0)