int家有i1和i2弟兄倆,小手一拉i1+i2,加起來了;double家有d1和d2姐妹倆,小手也一拉,d1+d2,也加起來了。C++村子裡來了複數(Complex)一家子,也有倆兄弟c1和c2,想要來個累加,笨乎乎地,c1.add(c2)。c1和c2傷心極了,也想像其他小朋友一樣,小手一拉,c1+c2,也能加起來。這個任務交給了正在看題的魔術師,幫他們一個忙,讓複數也能用+號相加吧。(可以複製提示部分的程式碼開始你的程式設計)
YTU-OJ-實現複數類中的加運算子過載【C++運算子過載】
Problem A: 實現複數類中的加運算子過載【C++運算子過載】
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 209 Solved: 136
[Submit][Status][Web Board]
Description
Input
四個數,分別代表兩個虛數c1和c2的實部和虛部。如輸入2.5 3.1 -4.5 0.3,代表兩個虛數:c1(2.5+3.1i), c2(-4.5+0.3i)
Output
兩個虛數相加的結果,格式(a,bi)形式
Sample Input
2.5 3.1 -4.5 0.3
Sample Output
(-2,3.4i)
HINT
class Complex
{
public:
//宣告需要的成員或友元函式,包括建構函式、用於過載運算子的函式及用於顯示結果的函式
private:
double real;
double imag;
};
//下面定義成員函式
//下面用main()函式測試,完成輸入輸出
int main()
{
double cr1, ci1, cr2, ci2;
cin>>cr1>>ci1>>cr2>>ci2;
Complex c1(cr1, ci1),c2(cr2, ci2),c3;
c3=c1+c2;
c3.display();
return 0;
}
#include<iostream>
using namespace std;
class Complex
{
public:
//宣告需要的成員或友元函式,包括建構函式、用於過載運算子的函式及用於顯示結果的函式
Complex();
Complex(double r,double i);
double get_real();
double get_imag();
friend istream& operator>>(istream&input,Complex &c);
void display();
private:
double real;
double imag;
};
//下面定義成員函式
Complex::Complex()
{
real=imag=0;
}
Complex::Complex(double r,double i)
{
real=r;
imag=i;
}
Complex operator+(Complex &c1,Complex &c2)
{
return Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());
}
double Complex::get_real()
{
return real;
}
double Complex::get_imag()
{
return imag;
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
istream& operator>>(istream&input,Complex &c)
{
int a,b;
char sign,i;
do
{
input>>a>>sign>>b>>i;
}
while(!((sign=='+'||sign=='-')&&i=='i'));
c.real=a;
c.imag=(sign=='+')?b:-b;
return input;
}
//下面用main()函式測試,完成輸入輸出
int main()
{
double cr1, ci1, cr2, ci2;
cin>>cr1>>ci1>>cr2>>ci2;
Complex c1(cr1, ci1),c2(cr2, ci2),c3;
c3=c1+c2;
c3.display();
return 0;
}
相關文章
- C++中運算子的過載C++
- C++——運算子過載C++
- C++運算子過載C++
- C++ 運算子過載C++
- Javascript實現運算子過載JavaScript
- 過載運算子
- 運算子過載
- C++ 過載運算子和過載函式C++函式
- C++過載的奧義之運算子過載C++
- C++運算子過載詳解C++
- 教你快速理解C++中的運算子過載C++
- [Lang] 運算子過載
- Python 運算子過載Python
- python之運算子過載Python
- c++ 運算子過載、執行緒安全實現單例C++執行緒單例
- C++運算子過載的一些困惑C++
- 手寫程式語言-實現運算子過載
- 指標運算子過載(* 和 ->)指標
- 開心檔之C++ 過載運算子和過載函式C++函式
- 過載運算子的常見方法
- C++學習筆記(二) 運算子過載C++筆記
- 過載運算子、解構函式函式
- 瞭解下C# 運算子過載C#
- 深入C++05:運算子過載C++
- 重拾Kotlin(18)-運算子過載Kotlin
- 【python隨筆】之【運算子過載】Python
- C++11運算子過載詳解與向量類過載例項(<<,>>,+,-,*等)C++
- 常用的過載運算子你瞭解幾個?
- C#運算子過載---逐步地分析與理解C#
- Kotlin教程(七)運算子過載及其他約定Kotlin
- C++之【操作符】彙總 &【不能被過載的運算子】小記C++
- 12 Python物件導向程式設計:運算子過載Python物件程式設計
- Kotlin實戰 | 2 = 12 ?泛型、類委託、過載運算子綜合應用Kotlin泛型
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- C++ 迭代器運算子 箭頭運算子->C++
- javascript中&&運算子和||運算子的使用JavaScript
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- 運算子 運算子
- 【C/C++】為什麼需要複製建構函式的同時通常也需要過載複製運算子C++函式