码迷,mamicode.com
首页 > 编程语言 > 详细

c++前缀和后缀++

时间:2014-06-29 19:43:53      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   name   c++   

1,c++规定后缀形式的++操作符有一个int行的参数,被调用时,编译器自动加一个0作为参数给他

2,前缀返回一个reference,后缀返回一个const对象

///////////////////////////////////////////////////////////////////////////////
//
//  FileName    :   meffect_item5.h
//  Version     :   0.10
//  Author      :   Ryan Han
//  Date        :   2013/11/18
//  Comment     :  prefix and postfix
//
///////////////////////////////////////////////////////////////////////////////
#ifndef MEFFECT_ITEM5_H
#define    MEFFECT_ITEM5_H
#include <iostream>
using namespace std;

class A{
    friend ostream& operator <<(ostream &os, const A &a);
public:
    A(int initvalue=0, int initstep=1):value(initvalue), step(initstep){}

    //prefix
    A& operator++(){
        cout << "A& operator++() was called" << endl;
        value+=step;
        return *this;
    }

    //postfix
    const A operator++(int){
        cout << "const A operator++(int) was called." << endl;
        const A oldA = *this;
        ++(*this);
        return oldA;
    }
private:
    int value;
    int step;
};

#endif
///////////////////////////////////////////////////////////////////////////////
//
//  FileName    :   meffect_item5.cpp
//  Version     :   0.10
//  Author      :   Ryan Han
//  Date        :   2013/11/18
//  Comment     :  prefix and postfix
//
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include "meffect_item5.h"
using namespace std;

ostream& operator<<(ostream &os, const A&a)
{
    return os<<a.value;
}
int main(){
    int i = 5;

    //postfix return a const value
    //i++++;
    
    //prefix return a reference
    ++++i;

    A a(0,10);
    cout << a++ << endl;
    cout << ++a << endl;
    A b(0,10);
    cout << b.operator++(9) << endl;
    cout << b.operator++() << endl;

    return 0;
}

 

 

c++前缀和后缀++,布布扣,bubuko.com

c++前缀和后缀++

标签:style   blog   color   os   name   c++   

原文地址:http://www.cnblogs.com/dracohan/p/3814870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!