zoukankan      html  css  js  c++  java
  • 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; }
  • 相关阅读:
    ExtJS4学习笔记二--表单控件相关
    Js中replace()的用法
    浅析轮询(Polling)和推送(LongPolling)服务
    ExtJS4学习笔记五--面板使用
    ExtJS4学习笔记四--图片上传
    spring MVC
    ExtJS4学习笔记三--远程访问数据源示例
    Struts 2
    ExtJs4学习笔记一--基础知识
    URL编码规则
  • 原文地址:https://www.cnblogs.com/gaoyanqing/p/4329592.html
Copyright © 2011-2022 走看看