#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Complex { public: Complex(double _real, double _p_w_picpath); //構造函數 Complex(const Complex & p); //拷貝構造函數 Complex operator+(const Complex &); //加法運算符的重載 Complex operator-(const Complex &); //減法運算符的重載 Complex operator*(const Complex &); //乘法運算符的重載 Complex operator/(const Complex &); //除法運算符的重載 void ShowNumber(); //輸出函數 ~Complex(); //析構函數 private: double real; double p_w_picpath; }; Complex::Complex(double _real, double _p_w_picpath) //構造函數 { real = _real; p_w_picpath = _p_w_picpath; } Complex::Complex(const Complex & p) //拷貝構造函數 { real = p.real; p_w_picpath = p.p_w_picpath; } Complex::~Complex() //析構函數 { cout << "已調用析構函數" << endl; } Complex Complex::operator + (const Complex &op1) //加法運算符的重載 { return Complex(real + op1.real, p_w_picpath + op1.p_w_picpath); } Complex Complex::operator-(const Complex &op1) //減法運算符的重載 { return Complex(real - op1.real, p_w_picpath + op1.p_w_picpath); } Complex Complex::operator*(const Complex &op1) //乘法運算符的重載 { return Complex((real * op1.real) - (p_w_picpath * op1.p_w_picpath), (real * op1.p_w_picpath) + (op1.real * p_w_picpath)); } void Complex::ShowNumber() //輸出函數 { cout << real << "+" << p_w_picpath << "i" << endl; } int main() { system("color e"); Complex op1(1.0, 2.0), op2(3.0, 4.0), op3(5.0, 6.0); Complex op4(op3); op1.ShowNumber(); op2.ShowNumber(); op3.ShowNumber(); op4.ShowNumber(); op1 = op2 + op3; op2 = op3 - op4; op3 = op3*op4; op1.ShowNumber(); op2.ShowNumber(); op3.ShowNumber(); system("pause"); return 0; }
運算符的重載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.