首页 > 编程知识 正文

双目运算符的重载实验要求,双目运算符重载有几个参数

时间:2023-05-04 07:45:56 阅读:226506 作者:36

链接:https://www.nowcoder.com/questionTerminal/8ed215974c814f8eb671f9a464399e97来源:牛客网#include<iostream.h> class CComplex{public: CComplex(double r = 0, double i = 0) { realPart = r; imagePart = i; } void print() { cout << "该复数实部 = " << realPart << ",虚部 = " << imagePart << endl; } CComplex operator + (CComplex &c); // 重载运算符+ CComplex operator + (double r); // 重载运算符+ private: double realPart; // 复数的实部 double imagePart; // 复数的虚部 }; CComplex CComplex::operator + (CComplex &c) // 参数是CComplex引用对象,两个复数的加法{ CComplex temp; temp.realPart = realPart + c.realPart; temp.imagePart = imagePart + c.imagePart; return temp; }CComplex CComplex::operator + (double r) // 参数是double类型数据,一个复数与一个实数的加法{ CComplex temp; temp.realPart = realPart + r; temp.imagePart = imagePart; return temp; } void main() { CComplex c1(12,20), c2(50,70), c; c = c1 + c2; c.print(); c = c1+ 20; c.print(); } /*运行结果为: 该复数实部 = 62, 虚部 = 90 该复数实部 = 32, 虚部 = 20 对运算符“+”作了两次重载,一个用于实现两个复数的加法,另一个用于实现一个复数与一个实数的加法。当重载一个运算符时,必须定义该运算符要完成的具体操作,而且当运算符重载函数是类的成员函数时,该函数的形参个数要比运算符 操作数个数少一个,双目运算符重载的成员函数只有一个参数,单目运算符重载的成员函数没有参数。友元重载的一般格式如下:friend <函数类型>operator <重载的运算符>(<形参>) // 单目运算符重载 { … } // 函数体 friend <函数类型>operator <重载的运算符>(<形参1, 形数2>) // 双目运算符重载{ … } // 函数体 对于单目运算符的友元重载函数,只有一个形参,形参类型可以是类的对象,可以是引用,这取决于不同的运算符。对于双目运算符的友元重载函数来说,它有两个形参,这两个形参中必须有一个是类的对象。需要说明的是,=、()、[]和->运算符不能用友元来重载。*/

一个双目运算符作为类的成员函数重载时,重载函数的参数表中有()个参数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。