用友元函数重载加号,进行复数和实数的加法时加号两端的操作数怎么还是不能互换?以下面程序为例:
#include
using std::cout;
using std::endl;
class Complex
{
friend Complex operator +(double d,const Complex &c);
public:
Complex(){dReal=0;dImag=0;}
Complex(double r,double i){dReal=r; dImag=i;}
void print()const;
private:
double dReal;
double dImag;
};
//友元函数实现
Complex operator +(double d,const Complex &c)
{
return Complex(d+c.dReal,c.dImag);
}
void Complex::print()const
{
cout
人气:213 ℃ 时间:2020-05-14 12:38:03
解答
大哥...
你只定义了double + complex的,没定义complex+double的啊
c0=c1+d1,电脑想第一个应该是double的,咦味道不对,怎么是Complex的,报错
再加一个友元函数
类里面声明
friend Complex operator +(const Complex &c,double d);
类外定义
Complex operator +(const Complex &c,double d)
{
return Complex(d+c.dReal,c.dImag);
}
void Complex::print()const
{
cout<<"("<}
就OK了
推荐
- 定义一个复数类,实部和虚部都是整数类型,用成员函数形式重载复数的“+”运算,用友元函数的形式重载 “
- 重载操作符+实现对复数形式的运算.复数形式为a+bi两个复数相加为实数部和虚数部分别相加如1+2i和3+4i运算
- 1)编写复数类,重载加法+、减法-、乘法*等运算符,其中加法+为友元函数,其他为复数类成员函数 2)设计评
- 编写三个名为add的重载函数,分别实现两个整数、两个实数和两个复数相加
- 英语翻译
- about 的用法
- 有这样一道题:有6门选修课程,要求选修3门,其中甲、乙两门必选其一,请问共有几种选法?
- 根据28乘9等于252,编一道乘法应用题和一道除法应用题
猜你喜欢