主要是用来使对象之间可以做运算 *** 作的
比如,你定义了一个类的对象a而这个对象中有一个数据,又定义了一个b对象也有一个数据,你须要使用a+b来计算这两个对象中数据的合,就须要运算符重载
运算符重载不光是可以重载四则运算的也可以重载 []下标运算符,<< >>输入输出运算符等等
运算符重载主要的用途只是为了让运算符其前后跟后的对象可以直接像对象内的数据一样运算
//楼上的回答的很好,但没有解答重点
complex complex::operator +(complex c2) //这步不是很理解
{
return complex([this]real+c2real,[this]imag+c2imag);//这样就容易理解了
}
/
“+” ,”-”是双目运算符,为什么在程序中的重载函数中只有一个参数呢?实际上,运算符重载函数有两个参数,由于重载函数是Complex类中的成员函数,有一个参数是隐含的,运算符函数是用this指针隐式地访问类对象的成员。
可以看到,重载函数operator+访问了两个对象中的成员,一个是this指针指向的对象中的成员,一个是形参对象中的成员。如this->real+c2real,this->real就是c1real。
在将运算符函数重载为成员函数后,如果出现含该运算符的表达式,如c1+c2,编译系统把它解释为c1operator+(c2)
即通过对象c1调用运算符重载函数,并以表达式中第二个参数(运算符右侧的类对象c2)作为函数实参。运算符重载函数的返回值是Complex类型,返回值是复数c1和c2之和(Complex(c1real + c2real,c1imag+c2imag))。
/
//可参考:
http://zhidaobaiducom/question/69566035html
就是可以定义新的运算方法,比如虚数的+、-法,你定义2个虚数,直接用+是不行的,系统不认,你必须自己写个重载,让实部和实部相加,虚部和虚部相加,你先了解下什么叫函数重载就能更好理解了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)