MyInt的简单实现

#include <iostream> 
using namespace std;  

class CMyInt{
private:
    int value;
public:
    CMyInt(int x):value(x){}
    CMyInt():value(0){}

    //++i
    CMyInt & operator++(){
        value ++;
        return *this;
    }
    //i++
    CMyInt operator++(int){
        CMyInt temp = *this;
        ++(*this);
        return temp;
    }
    CMyInt & operator=(const CMyInt & B){
        if(this != &B)    this->value = B.value;
        return *this;        
    }
    int getInt(){
        return value;
    }
    // operator int() const{ //与上面的隐式转换重叠,在混合运算中将出现歧义;如果需要转int,可以定义一个接口,即getInt()
    //    return value;
    //}

    friend ostream & operator <<(  ostream & , const CMyInt & );
    friend CMyInt  operator + (const CMyInt & A, const CMyInt & B);

};
ostream & operator <<( ostream & out, const CMyInt & myint){
    out << myint.value;
    return out;
} 
CMyInt  operator + (const CMyInt & A, const CMyInt & B){
    return CMyInt(A.value + B.value);
}  


int main() {  

    CMyInt myint(0),inta(2),intb(2);
    int x,y;

    cout << (myint++) + (myint++)<<endl;  //print 1
    cout << myint <<endl;   //print 2

// 比较与内置后++有什么区别 int a=0; cout << (a ++ + a++ ) <<endl; //print 0 cout << a <<endl; //print 2 x=myint.getInt(); myint = inta + intb + x; cout << myint <<endl; //6 //y=myint;// 非法 y=myint.getInt(); //合法; cout << y <<endl; // print 6 myint= y =(inta + x + intb).getInt(); //连续赋值 cout << myint << " " << y <<endl; }

 

转载于:https://www.cnblogs.com/gaoyanqing/p/4329592.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值