用友元函数重载加号,进行复数和实数的加法时加号两端的操作数怎么还是不能互换?以下面程序为例:

用友元函数重载加号,进行复数和实数的加法时加号两端的操作数怎么还是不能互换?以下面程序为例:

题目
用友元函数重载加号,进行复数和实数的加法时加号两端的操作数怎么还是不能互换?以下面程序为例:
#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
答案
大哥...
你只定义了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了
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.