C++重载operator的示例

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
以下示例中定义了一个class test, 重载了<, +, +=, =, ==, <<, >>等符号:

#include<iostream>#include<vector>using namespace std;class test{public:     int v;   /*构造函数*/     test():v(0){}     test(const int &a):v(a){}     test(const test &t1):v(t1.v){}        /*以下重载小于号 < */     //比较两个对象的大小      bool operator<(const test &t1) const{          return (v < t1.v);     }     //比较对象和int的大小      bool operator<(const int &t1) const{          return (v < t1);     }     //友元函数,比较int和对象的大小      friend inline bool operator<(const int &a, const test & t1){         return (a < t1.v);     }       /*以下重载赋值号 = */     //对象间赋值      test & operator=(const test &t1){         v = t1.v;         return *this;     }     //int赋值给对象      test & operator=(const int &t1){         v = t1;         return *this;     }       /*以下重载加号 + */     //对象加上 int      test operator+(const int & a){         test t1;         t1.v = v + a;         return t1;     }     //对象加对象      test operator+(test &t1){         test t2;         t2.v = v + t1.v;         return t2;     }       /*以下重载加等号 += */       //对象加上对象      test &operator+=(const test &t1){         v += t1.v;         return *this;     }       //对象加上int     test &operator+=(const int &a){         v += a;         return *this;     }   /*以下重载双等号 == */       //对象==对象      bool operator==(const test &t1)const{         return (v == t1.v);     }       //对象==int     bool operator==(const int &t1)const{         return (v == t1);     }         /*以下重载 输入>> 输出<< */     /*友元函数,输出对象*/     friend inline ostream & operator << (ostream & os, test &t1){         cout << "class t(" << t1.v << ")" << endl;         return os;     }     /*友元函数,输入对象*/     friend inline istream & operator >> (istream & is, test &t1){         cin >> t1.v;         return is;     }};int main(){     test t0, t1(3);     test t2(t1);     cout << t0 << t1 << t2;     cin >> t1;     t2 = t1;     t2 += t1;     t1 += 10;     cout << t2;     if(t1 < t2) cout << "t1 < t2";      else if(t1 == t2) cout << "t1 = t2";     else /* t1 > t2*/ cout << "t1 > t2";      cout <<endl;     system("pause");     return 0;}


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值