欢迎来到天天文库
浏览记录
ID:8970566
大小:34.02 KB
页数:19页
时间:2018-04-13
《c运算符重载例程详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、运算符重载就是对一个已有的运算符赋予新的含义,使之实现新功能。下面将通过简单的几个例程阐叙其用法。例10.1通过函数来实现复数相加。#includeusingnamespacestd;classComplex//定义Complex类{public:Complex(){real=0;imag=0;}//定义构造函数Complex(doubler,doublei){real=r;imag=i;}//构造函数重载Complexcomplex_add(Complex&c2);//声明复数相加函数voiddisplay();//声明输出函数private:doubler
2、eal;//实部doubleimag;//虚部};ComplexComplex::complex_add(Complex&c2){Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidComplex::display()//定义输出函数{cout<<″(″<3、lay();//输出c1的值cout<<″c2=″;c2.display();//输出c2的值cout<<″c1+c2=″;c3.display();//输出c3的值return0;}例10.2改写例10.1,重载运算符“+”,使之能用于两个复数相加。#includeusingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);//声明重载运算符的函数voidd4、isplay();private:doublereal;doubleimag;};ComplexComplex::operator+(Complex&c2)//定义重载运算符的函数{Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidComplex∷display(){cout<<″(″<5、);cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();return0;}例10.3将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。#includeusingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}friendComplexoperator+(Complex&c1,Complex&c2);//重载函6、数作为友元函数voiddisplay();private:doublereal;doubleimag;};Complexoperator+(Complex&c1,Complex&c2)//定义作为友元函数的重载函数{returnComplex(c1.real+c2.real,c1.imag+c2.imag);}//简洁的写法voidComple::display(){cout<<″(″<7、y();cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();}例10.4定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”,“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。为了使读者便于理解程序,同时也使读者了解建立程序的步骤,下面分几步来介绍编程过程。(1)先建立一个String类:#includeusingnamespacestd;classString{public:
3、lay();//输出c1的值cout<<″c2=″;c2.display();//输出c2的值cout<<″c1+c2=″;c3.display();//输出c3的值return0;}例10.2改写例10.1,重载运算符“+”,使之能用于两个复数相加。#includeusingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);//声明重载运算符的函数voidd
4、isplay();private:doublereal;doubleimag;};ComplexComplex::operator+(Complex&c2)//定义重载运算符的函数{Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}voidComplex∷display(){cout<<″(″<5、);cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();return0;}例10.3将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。#includeusingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}friendComplexoperator+(Complex&c1,Complex&c2);//重载函6、数作为友元函数voiddisplay();private:doublereal;doubleimag;};Complexoperator+(Complex&c1,Complex&c2)//定义作为友元函数的重载函数{returnComplex(c1.real+c2.real,c1.imag+c2.imag);}//简洁的写法voidComple::display(){cout<<″(″<7、y();cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();}例10.4定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”,“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。为了使读者便于理解程序,同时也使读者了解建立程序的步骤,下面分几步来介绍编程过程。(1)先建立一个String类:#includeusingnamespacestd;classString{public:
5、);cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();return0;}例10.3将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。#includeusingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}friendComplexoperator+(Complex&c1,Complex&c2);//重载函
6、数作为友元函数voiddisplay();private:doublereal;doubleimag;};Complexoperator+(Complex&c1,Complex&c2)//定义作为友元函数的重载函数{returnComplex(c1.real+c2.real,c1.imag+c2.imag);}//简洁的写法voidComple::display(){cout<<″(″<7、y();cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();}例10.4定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”,“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。为了使读者便于理解程序,同时也使读者了解建立程序的步骤,下面分几步来介绍编程过程。(1)先建立一个String类:#includeusingnamespacestd;classString{public:
7、y();cout<<″c2=″;c2.display();cout<<″c1+c2=″;c3.display();}例10.4定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”,“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。为了使读者便于理解程序,同时也使读者了解建立程序的步骤,下面分几步来介绍编程过程。(1)先建立一个String类:#includeusingnamespacestd;classString{public:
此文档下载收益归作者所有