
一道C++题目,求助,急,在线等~~~~~~
题目如下:根据下面主程序的提示,定义一个类complex,用友元运算符函数进行复数重载运算符“+”、“-”运算,复数的实部real和虚部imag均为double型。#in...
题目如下:
根据下面主程序的提示,定义一个类complex,用友元运算符函数进行复数重载运算符“+”、“-”运算,复数的实部real和虚部imag均为double型。
#include<iostream.h>
class complex;
void mian()
{
complex A1(5.8,6.3),A2(4.7,5.2), A3, A4; // 定义4个复数类对象
A3=A1+A2; //复数相加
A4=A1-A2; //复数相减
} 展开
根据下面主程序的提示,定义一个类complex,用友元运算符函数进行复数重载运算符“+”、“-”运算,复数的实部real和虚部imag均为double型。
#include<iostream.h>
class complex;
void mian()
{
complex A1(5.8,6.3),A2(4.7,5.2), A3, A4; // 定义4个复数类对象
A3=A1+A2; //复数相加
A4=A1-A2; //复数相减
} 展开
4个回答
展开全部
class complex
{
public
complex(double real=0.0, double imag=0.0):m_real(real),m_imag(imag) {}
friend complex operator + (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real+rhs.m_real,lhs.m_imag+rhs.m_imag);
}
friend complex operator - (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real-rhs.m_real,lhs.m_imag-rhs.m_imag);
}
private:
double m_real;
double m_imag;
};
1. 楼上两位的回答是错误的,楼上的两位,只要把friend去掉就对了。
2. C++里有标准类complex,只要
#include <complex>
using namespace std;
complex<double> a1,a2;
这就可以了。
{
public
complex(double real=0.0, double imag=0.0):m_real(real),m_imag(imag) {}
friend complex operator + (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real+rhs.m_real,lhs.m_imag+rhs.m_imag);
}
friend complex operator - (const complex& lhs, const complex& rhs)
{
return complex(lhs.m_real-rhs.m_real,lhs.m_imag-rhs.m_imag);
}
private:
double m_real;
double m_imag;
};
1. 楼上两位的回答是错误的,楼上的两位,只要把friend去掉就对了。
2. C++里有标准类complex,只要
#include <complex>
using namespace std;
complex<double> a1,a2;
这就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用反证法证
假设三个方程没有一个方程有两个相异实根
那么,4b^2-4ac<=0且4c^2-4ab<=0且4a^2-4bc<=0
得到2b^2-2ac<=0……(1)
2c^2-2ab<=0……(2)
2a^2-2bc<=0……(3)
三式相加:2b^2-2ac+2c^2-2ab+ 2a^2-2bc<=0
(a-b)^2+(b-c)^2+(a-c)^2<=0
那么a=b=c,与已知 a,b,c是互不相等的非零实数矛盾,
所以假设不成立,即原命题成立
假设三个方程没有一个方程有两个相异实根
那么,4b^2-4ac<=0且4c^2-4ab<=0且4a^2-4bc<=0
得到2b^2-2ac<=0……(1)
2c^2-2ab<=0……(2)
2a^2-2bc<=0……(3)
三式相加:2b^2-2ac+2c^2-2ab+ 2a^2-2bc<=0
(a-b)^2+(b-c)^2+(a-c)^2<=0
那么a=b=c,与已知 a,b,c是互不相等的非零实数矛盾,
所以假设不成立,即原命题成立
参考资料: 百度一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要说明的是你的程序里这句class complex是多余的吧。
class complex
{
double _x,_y;
public:
complex(double x=0,double y=0):_x(x),_y(y){}
complex friend operator+(const complex&z);
complex friend operator-(const complex&z);
};
complex friend complex::operator+(const complex&z)
{
complex c;
c._x=_x+z._x;
c._y=_y+z._y;
return c;
}
complex friend complex::operator-(const complex&z)
{
complex c;
c._x=_x-z._x;
c._y=_y-z._y;
return c;
}
class complex
{
double _x,_y;
public:
complex(double x=0,double y=0):_x(x),_y(y){}
complex friend operator+(const complex&z);
complex friend operator-(const complex&z);
};
complex friend complex::operator+(const complex&z)
{
complex c;
c._x=_x+z._x;
c._y=_y+z._y;
return c;
}
complex friend complex::operator-(const complex&z)
{
complex c;
c._x=_x-z._x;
c._y=_y-z._y;
return c;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class complex
{
private:
double real;
double imag;
public:
complex(double r = 0.0, double i = 0.0) {real = r; imag = i;}
friend complex operator+(const complex &x){complex temp(real+x.real, imag+x.imag); return temp;}
friend complex operator-(const complex &x){complex temp(real-x.real, imag-x.imag); return temp;}
};
{
private:
double real;
double imag;
public:
complex(double r = 0.0, double i = 0.0) {real = r; imag = i;}
friend complex operator+(const complex &x){complex temp(real+x.real, imag+x.imag); return temp;}
friend complex operator-(const complex &x){complex temp(real-x.real, imag-x.imag); return temp;}
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询