none
这里的自增和自减正确吗? RRS feed

  • 问题

  • class PointIndex 
    {   int i; 
        public:   
        PointIndex () { ; }   
        PointIndex (int ai) : i(ai) { ; }   
        PointIndex & operator= (const PointIndex &ai) {  i = ai.i; return *this; }    
        PointIndex & operator= (int ai) { i = ai; return *this; }   
        operator int () const { return i; }   
        int GetInt () const { return i; }   
        PointIndex operator++ (int) { int hi = i; i++; return PointIndex(hi); }   
        PointIndex operator-- (int) { int hi = i; i--; return PointIndex(hi); } 

    上述代码最后两句是自增和自减运算符的重载,大家看能实现对应的功能吗?以自增为例,我看不出能实现自增。通过这个重载后好像大小没变。还有,这里返回一个函数是什么意思啊?以前没见过,请大家帮忙看看,谢谢。
    2012年11月7日 11:24

答案

  • 后面两个是后自增和后自减,操作的结果是先返回变量原来的值,然后变量再加一。

    和常见的
    int i = 0;
    cout<<i++<<endl;
    cout<<i--<<endl;
    的含义是一样的。


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年11月8日 1:35
    版主