A-A+

下列是重载乘法运算符的函数原型声明 其中错误的是A.MyClass operator * (

2022-08-06 02:08:58 问答库 阅读 174 次

问题详情

下列是重载乘法运算符的函数原型声明,其中错误的是
A.MyClass operator * (double, double);
B.MyClass operator * (double, MyClass);
C.MyClass operator * (MyClass, double);
D.MyClass operator * (MyClass, MyClass);请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:A
解析:本题考查的知识点是:运算符重载。C++把重载的运算符视为特殊的函数,称为运算符函数。运算符重载就是函数重载的一种特殊情况。像对待一般重载函数一样,编译系统能够依据使用运算符的不同环境,即参数(操作数)的数量或类型的差异,区分同一运算符的不同含义。本题中的选项A重载运算符“*”使用的形参是两个double,而系统中的“*”运算原本就能计算两个double,所以这违反了重载函数的原则,当执行a*b(a、b的类型均为double)这样的表达式时,系统不知道该执行默认的“乘法”还是用户自定义的运算符重载函数。故答案为选项A。

考点:乘法,原型