![]() |
#2
jjg2010-08-13 12:12
|

/*
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,
运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的一般格式:
函数类型 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++ 最吸引人的特点之一。*/
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,
运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的一般格式:
函数类型 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++ 最吸引人的特点之一。*/