2023年12月11日發(作者:美麗的丹頂鶴)

重載函數在類外
二.重載符號的函數既不是友元又不是成員,怎么辦呢?
定義一個復數類Complex,重載運算符“+”,使之能用于復數的加法運算。將運算符函數重載為非成員、非友元的普通函數。編寫程序,求兩
個復數之和。
Input
兩個復數
Output
復數之和
Sample Input
3 4
5 -10
Sample Output
(8.00,-6.00i)
#include
#include
using namespace std;
class Complex
{
public:
Complex();//無參構造函數
Complex(double r,double i);//有參構造函數//有構造函數就必有初始化,不在類內就在類外,一定要有這個意識!
double get_real();
double get_imag();//用了兩個函數
void display();
private:
double real;
double imag;
};
Complex::Complex(){real=0;imag=0;}
Complex::Complex(double r,double i)
{
real=r;
imag=i;
}//初始化,這個帶參的初始化要訓練自己用參數表的形式【Complex::Complex(double r,double i):real(r),imag(i){}】,不要寫錯了,并且牢記位置
double Complex::get_real()
{
return real;
}
double Complex::get_imag()
{
return imag;
}
Complex operator +(Complex&c1,Complex&c2)
{
Complex temp(_real()+_real(),_imag()+_imag());
return temp;
}//注意兩點:一:函數類型是Complex;第二:函數名叫做“operator +”;在這個函數里調用了基類中的兩個函數。
void Complex::display()
{
cout<<"("< } int main() { double real,imag; cin>>real>>imag; Complex c1(real,imag); cin>>real>>imag; Complex c2(real,imag); Complex c3=c1+c2; cout< cout< y(); return 0; } -

本文發布于:2023-12-11 08:29:53,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/170225459340685.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:重載函數在類外.doc
本文 PDF 下載地址:重載函數在類外.pdf
| 留言與評論(共有 0 條評論) |