zoukankan      html  css  js  c++  java
  • 重载自增运算符(前置自增++p和后置自增p++)

    如何重载增量运算符 ++ 和 --
        运算符++和—有前置和后置两种形式,如果不区分前置和后置,则使用operator++( )或operator--( )即可;否则,要使用operator++( )或operator--( )来重载前置运算符,使用operator++(int)或operator--(int)来重载后置运算符,调用时,参数int被传递给值0。如下列程序段:

    (1) 用成员函数的形式来进行重载
    如果++为前增量运算符时,重载函数的一般格式为:
    < type > ClassName :: operator ++ ( )
    {
     //…
    }

    如果++为后增量运算符时,重载函数的一般格式为:
    < type > ClassName :: operator ++ ( int  )
    {
     //…
    }

    (2) 非成员函数形式的重载
    以++ 为例说明
    用友元函数来实现“++”运算符的重载时,前置++运算符的重载的一般格式:
    friend <type> operator ++ (ClassName & );
    其中,第一个参数是要实现++运算的对象。

    后置++运算符的重载的一般格式:
    friend <type> operator ++(ClassName &,int);
    其中,第一个参数是要实现++运算的对象;而第二个参数除了用于区分是后置运算外,并没有其他意义,故起参数可有可无.


    例子

    Clock Clock::operator++( ) //前置
    {
    incOneSecond( ); 
    cout<<”++Clock:”;
    return *this;
    }
    Clock Clock::operator++( int ) //后置
    {  Clock temp(*this);
    incOneSecond( );
    cout<<”Clock++:”;
    return temp;
    }


    原帖:http://blog.csdn.net/fairy_study/article/details/3531306


  • 相关阅读:
    MySQL第七课
    MySQL第六课
    mysql第五课
    MySQL第四课
    MySQL第三课
    MYSQL第一课
    MYSQL第二课
    char、vchar、nvarchar 的区别
    SSRS Reporting Service安装与部署
    存储过程用法
  • 原文地址:https://www.cnblogs.com/catkins/p/5270702.html
Copyright © 2011-2022 走看看