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++
- [C++]運算子過載C++
- Javascript實現運算子過載JavaScript
- 過載運算子
- C++ 過載運算子和過載函式C++函式
- C++過載的奧義之運算子過載C++
- C++運算子過載詳解C++
- 初步C++運算子過載學習筆記<3> 增量遞減運算子過載C++筆記
- 教你快速理解C++中的運算子過載C++
- C++過載加號運算子實現兩個結構體的相加C++結構體
- C# 運算子過載C#
- 運算子過載筆記筆記
- C++運算子過載的一些困惑C++
- python之運算子過載Python
- 指標運算子過載(* 和 ->)指標
- Python——運算子過載(1)Python
- 手寫程式語言-實現運算子過載
- 開心檔之C++ 過載運算子和過載函式C++函式
- C++學習筆記(二) 運算子過載C++筆記
- 優先佇列中過載運算子>和佇列
- 瞭解下C# 運算子過載C#
- 深入C++05:運算子過載C++
- 型別轉換 運算子過載型別
- 【原】兩個時間相加的運算子過載實現
- 第十八篇:複製控制( 中 ) --- 過載賦值運算子賦值
- 從一個加減法運算程式碼理解特殊運算子的過載
- YTU-OJ-C++時間類的運算子過載C++
- 重拾Kotlin(18)-運算子過載Kotlin
- 【python隨筆】之【運算子過載】Python
- Python中常見運算子過載方法Python
- C++11運算子過載詳解與向量類過載例項(<<,>>,+,-,*等)C++
- C++ 運算子過載講解與經典例項C++
- 中文版 過載箭頭運算子的理解
- C#運算子過載---逐步地分析與理解C#
- 重讀 Swift 之二:Operator Declaration(運算子過載)Swift