標籤:運算子多載 加 減
一、運算子多載為成員函數
#include <iostream>using namespace std;class Complex {public: double real; double imag; Complex(double r = 0.0,double i = 0.0); Complex operator+(const Complex&); Complex operator-(const Complex&); void printcomplex();};Complex::Complex(double r ,double i){ real = r; imag = i;}Complex Complex::operator+(const Complex& c){ return Complex(real+c.real,imag+c.imag);}Complex Complex::operator-(const Complex& c){ return Complex(real-c.real,imag-c.imag);}void Complex::printcomplex(){ cout<<real<<"+"<<imag<<"i"<<endl;}int main(int argc, const char * argv[]) { Complex a(3,4),b(5,9),c,d; c = a + b; d = b - a; c.printcomplex(); d.printcomplex(); return 0;}
二、運算子多載成為普通函數
#include <iostream>using namespace std;class Complex {public: double real; double imag; Complex(double r = 0.0,double i = 0.0); void printcomplex();};Complex::Complex(double r ,double i){ real = r; imag = i;}Complex operator+(const Complex& c1, const Complex& c2){ return Complex(c1.real+c2.real,c1.imag+c2.imag);}Complex operator-(const Complex& c1, const Complex& c2){ return Complex(c1.real-c2.real,c1.imag-c2.imag);}void Complex::printcomplex(){ cout<<real<<"+"<<imag<<"i"<<endl;}int main(int argc, const char * argv[]) { Complex a(3,4),b(5,9),c,d; c = a + b; d = b - a; c.printcomplex(); d.printcomplex(); return 0;}
注意:printcomplex( )函數沒有處理輸出的細節。
C++運算子多載(一)——加減