什么是运算符重载
什么是运算符重载,其实就是函数的重载;
运算符重载 的好处:
1.扩充C++的运算符;
如:
对++的运算符的扩充可以达到对类的自增与自减;
Complex operator++(); 前置++
Complex operator++(int) ;后置++;
Complex operator--(); 前置--;
Complex operator--(int); 后置--;
说明:
在重载运算符自增与自减里的后置++/--是通过在参数表中填写int来实现的,如果不加Int的话系统是不能自动的识别的;
对“<<"与”>>"插入流操作符与提取流操作符的扩充达到对类数据成员的操作;
istream &operator>>(iostream &, Complex &c1);
ostream &operator<<(ostream &, Comlplex &c1);
...
.......
..................
2.可以进行复数运算:
如:
#include <iostream.h> classs Complex { public: Complex(){real = 0; imag = 0;} Complex(double r, double i){real = r; imag = i;} Complex operator+(Complex &c1); void display(); private: double real; double imag; }; Complex Complex::operator+(Complex &c1) { return Complex(real + c1.real, imag + c1.imag): } void Complex ::display() { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main() { Complex c1(100, 20), c2(23, 100), c3; c3 = c1 + c2; cout<<"c1=";c1.display(); cout<<"c2=";c2.display(); cout<<"c1+c2=";c3.display(); return 0; } /* 结果: (100, i23); (23, i100); (123, 123i); */
由上面的这个例子可以看到,运算符重载是可以实现复数的运算;是很方便的;运算符的重载方式;
1.在类中定义成员函数实现运算符重载;
2.将一个普通函数声明为类的友元;
<未完待续....>