下列是重载乘法运算符的函数原型声明,其中错误的是

admin2017-10-17  35

问题 下列是重载乘法运算符的函数原型声明,其中错误的是

选项 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。
转载请注明原文地址:https://kaotiyun.com/show/DWAp777K
0

最新回复(0)