C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。
阿新 • • 發佈:2019-01-01
#include <iostream> #include <iomanip> 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(){} Complex::Complex(double r,double i) { real=r; imag=i; } double Complex:: get_real() { return real; } double Complex:: get_imag() { return imag; } void Complex::display() { cout<<"("<<real<<","<<imag<<"i)"<<endl; } Complex operator+(Complex &c1, Complex &c2) { return Complex(c1.get_real()+c2.get_real(), c1.get_imag()+c2.get_imag()); } int main() { double real,imag; cin>>real>>imag; Complex c1(real,imag); cin>>real>>imag; Complex c2(real,imag); Complex c3=c1+c2; cout<<setiosflags(ios::fixed); cout<<setprecision(2); c3.display(); return 0; }
注意:外部函式不能直接呼叫私有資料型別,所以通過get方法獲得。