重载运算符示例
程序代码:
/* 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说, 运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的一般格式: 函数类型 operator 运算符名称( 形参表列) { 对运算符的重载处理} 注意:函数名是由 operator 和 运算符组成。例如: operator+ 就是函数名。*/ //重载运算符 例10_2(谭浩强《C++程序设计》第一版 P316页) #include <iostream> using namespace std; class Complex //定义 Complex { public: Complex( ){ real = 0; imag =0;} //定义无参构造函数,并初始化 Complex( double r, double i){ real = r; imag = i;} //构造函数重载,定义并初始化 Complex operator + ( Complex &c2); //声明重载运算符的 “ + ”函数 void display( ); //声明输出函数 private: double real; //实部 double imag; //虚部 }; Complex Complex::operator + ( Complex &c2) //定义重载运算符 “ + ”的函数 { Complex c; c.real = real + c2.real; //两个复数的实部相加 c.imag = imag + c2.imag; //两个复数的虚部相加 return c;} void Complex::display( ) //定义输出函数 { cout << "(" << real << "," << imag << "i)" << endl;} int main( ) { Complex c1( 3,4),c2( 5,-10),c3; //定义三个复数对象,建立对象时自动调用有参构造函数并赋值 c3 = c1 + c2; //运算符 “ + ”用于复数运算 cout << "c1 =";c1.display( ); //输出 c1 的值 cout << "c2 =";c2.display( ); //输出 c2 的值 cout << "c1 + c2 =";c3.display( ); //输出 c3 的值 system("pause"); return 0; } /*运算符重载对 C++ 程序设计有重要意义,把运算符重载和类结合起来,可以在 C++ 程序中定义出很有实用意义而使用方便的新数据 类型。运算符重载使 C++ 具有更加大的功能、更好的可扩充性和适应性,这是 C++ 最吸引人的特点之一。*/