c++ 重载运算符

来源:互联网 发布:真皮腰带淘宝攻略 编辑:程序博客网 时间:2024/06/03 18:25
#include <iostream>using namespace std;class CTmp{public://friend const CTmp operator++(CTmp& tmp);//friend const CTmp operator++(CTmp& tmp, int);CTmp(int iflag=0):i(iflag){}void print()const { cout<<"i:"<<i<<endl; }const CTmp operator +(const CTmp& info){cout<<"operator+:"<<endl;return CTmp(i+info.i); }const CTmp operator++(){cout<<"++CTmp:"<<endl;i++;return *this;}const CTmp operator++(int){cout<<"CTmp++:"<<endl;CTmp tmp(i);this->i++;return tmp;}CTmp& operator +=(const CTmp& info){cout<<"operator+="<<endl;i += info.i;return *this;}bool operator >=(const CTmp& info){cout<<"operator>=:"<<endl;return (this->i > info.i)?true:false;}private:int i;};/*const CTmp operator++(CTmp& tmp){cout<<"friend ++tmp:"<<endl;tmp.i++;return tmp;}const CTmp operator++(CTmp& tmp, int){cout<<"friend tmp++:"<<endl;CTmp otmp(tmp.i);tmp.i++;return otmp;}*/int main(){int i = 1, j = 2, k = 3;CTmp I(i);CTmp J(j);CTmp K(k);K += I+J;I++;++I;if( I >= K )cout<<"true"<<endl;elsecout<<"false"<<endl;return 0;}

0 0
原创粉丝点击