首页 > 试题广场 >

下面重载乘法运算符的函数原型声明中正确的是()

[不定项选择题]
下面重载乘法运算符的函数原型声明中正确的是()
  • MyClass operator *(double ,MyClass);
  • MyClass operator *(MyClass ,MyClass);
  • MyClass operator *(double ,double);
  • MyClass operator *(MyClass ,double);
推荐
答案应该是ABD
c++中规定,重载运算符必须和用户定义的自定义类型的对象一起使用。
编辑于 2015-12-02 17:18:04 回复(8)
正确答案:ABD;本题考察C++运算符重载;
解析:
对于一个运算符函数来说,它或者是类的成员,或者至少包含一个类类型的参数;
操作符重载允许将标准C++操作符用于类对象;
发表于 2016-08-24 00:12:58 回复(0)
运算符重载声明中的参数的顺序不能随意变更。故A和D是两个不同的重载运算方法。C选项在库函数中已经实现了两个实数的相乘运算,所以不是重载的情况。
发表于 2016-05-18 17:50:32 回复(0)
这个题目中应该注意的是,这个运算符重载一定使用友元函数进行重载的。
发表于 2015-12-01 15:52:35 回复(3)
以下摘自 C++ Primer
The meaning of an operator for the built-in types may not be changed.
Nor may additional operators be defined for the built-in data types.

An overloaded operator must have at least one operand of class or enumeration type. This rule enforces the requirement that an overloaded operator may not redefine the meaning of the operators when applied to objects of built-in type.
发表于 2015-11-12 16:42:44 回复(1)
这些选项后得加上友元才行,因为有两个操作数。如果是类成员函数,这里需要一个操作数就行了。
发表于 2020-02-20 12:01:19 回复(0)
对于非友元来说,这些都不对,因为二元运算符用成员重载时,只需要一个参数,另一个参数由this指针传入 。
发表于 2019-01-06 18:19:52 回复(0)
#include <iostream>
usingnamespacestd;
 
classMyClass
{
 
};
 
MyClass operator *(doubled,MyClass mc)
{
    cout<<"double, MyClass"<<endl;
    MyClass res;
    returnres;
}
 
MyClass operator *(MyClass mc1, MyClass mc2)
{
    cout<<"MyClass, MyClass"<<endl;
    MyClass res;
    returnres;
}
 
MyClass operator *(MyClass mc, doubled)
{
    cout<<"MyClass, double"<<endl;
    MyClass res;
    returnres;
}
 
intmain()
{
    MyClass mc1;
    MyClass mc2;
    doubled = 0.0;
 
    d * mc1;
    mc1 * mc2;
    mc1 * d;
}
 
//double, MyClass
//MyClass, MyClass
//MyClass, double
发表于 2016-10-11 20:49:17 回复(0)
对于一个运算符函数来说,它或者是类的成员,或者至少包含一个类类型的参数
所以选择ABD
编辑于 2016-03-07 17:00:42 回复(0)
c++中规定,重载运算符必须和用户定义的自定义类型的对象一起使用。
发表于 2019-11-21 09:40:06 回复(0)
默认单选,我是没救了
发表于 2019-05-14 18:32:45 回复(0)
双double的乘法已经存在了,再重载就出错了
发表于 2019-04-08 12:44:29 回复(1)
对于一个运算符函数来说,它或者是类的成员,或者至少包含一个类类型的参数;
发表于 2018-07-09 15:30:18 回复(0)
多选题啊,**
发表于 2018-04-21 07:34:27 回复(0)
对于一个运算符函数来说,它或者是类的成员,或者至少包含一个类类型的参数;  
操作符重载允许将标准C++操作符用于类对象;
发表于 2017-07-05 15:38:13 回复(0)
复制 c++中规定,重载运算符必须和用户定义的自定义类型的对象一起使用。
发表于 2017-06-04 11:44:55 回复(0)
c++中规定,重载运算符必须和用户定义的自定义类型的对象一起使用。
发表于 2017-05-08 21:24:09 回复(0)
答案ABD
c++中规定,重载运算符必须和用户定义的自定义类型的对象一起使用。
发表于 2017-02-10 14:03:53 回复(0)
这道题里的重载是有元的才行
发表于 2016-08-03 10:53:32 回复(1)
重载运算符必须和用户定义的自定义类型的对象一起使用
发表于 2016-08-01 16:45:13 回复(0)
重载运算符必须和用户定义对象一起使用
发表于 2016-07-10 20:03:49 回复(0)