问题
单项选择题
如果表达式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.operator*(z)或者operator*(y,z);另一种是通过运算符构成表达式,即y*z。因为“++”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀“++”时必须多一个虚拟参数:int。