C++运算符重载

来源:互联网 发布:匡恩网络 b轮 编辑:程序博客网 时间:2024/06/16 22:06

运算符重载:

运算符重载实质上是函数重载,其目的是设置一个运算符使其具有其他的功能,例如"+"号在数值运算中是两个数的相加,但是在字符串中则是两个字符串的连接。

如果自定义的类型想要进行运算,如自定义类型的两个对象需要相加,就可以使用运算符重载。

来源:http://jpk.sdju.edu.cn/cplus/kejian/CONTENT/chapter7/chapter7_2_1.htm


运算符重载的格式:

    函数类型 operator 运算符名称 (形参列表)    {        // 对运算符的重载处理    }

(1)类的成员函数

#include <iostream>using namespace std;class Test{public ://构造函数Test(){numA=0;numB=0;}Test(int a,int b){numA=a;numB=b;}//重载运算符的函数Test operator + (Test & t){Test t1;t1.numA=numA+t.numA;t1.numB=numB+t.numB;return t1;}void show(){    cout<<numA<<endl;    cout<<numB<<endl;}private :int numA;int numB;};int main(){Test t1(1,5),t2(2,6),t3;t3=t1+t2;cout<<"t1:"<<endl;t1.show();cout<<"t2:"<<endl;t2.show();cout<<"t3=t1+t2:"<<endl;t3.show();return 0;}

输出结果:

t1:
1
5
t2:
2
6
t3=t1+t2:
3
11


分析:

在main函数中,“t3=t1+t2;”在将运算符+重载为类的成员函数后,C++编译系统将程序中的表达式t1+t2解释为:

t1.operator+(t2);其中t1和t2都是Test类的对象,即以t2为实参调用t1的运算符重载函数operator+(Test & t2),进行求值,得到两个数之和。

来源:http://www.jb51.net/article/42098.htm


(2)类的友元函数

1.运算时,有数和对象的混合运算时,必须使用友元。

2.二元运算符中,第一个操作数为非对象时,必须使用友元函数。


friend const 类的名称 operator运算符名称(参数1,参数2);


来源:http://blog.csdn.net/insistgogo/article/details/6626952




0 0
原创粉丝点击