• [置顶] 【C/C++学习】之十二、++i与i++的区别


    大家都应该知道i++和++i的区别,前者是先使用i的值,然后再增加1,而后者是先增加1然后再使用i的值。

    但是i++和++i那个更好呢? 我们通过程序来比较一下:

    #include<iostream>
    using namespace std;
    
    class I{
    public:
    	I();
    	~I();
    
    	I(const I &i);
    	I& operator=(const I &i);
    	I& operator++();
    	I operator++(int);
    };
    
    I::I()
    {
    	cout << "con" << endl;
    }
    
    I::~I()
    {
    	cout << "dector" << endl;
    }
    
    I::I(const I& i)
    {
    	cout << "copy" << endl;
    }
    
    I& I::operator++()
    {
    	cout << "increament" << endl;
    	return *this;
    }
    
    I& I::operator=(const I &i)
    {
    	cout << "assign" << endl;
    	return *this;
    }
    
    I I::operator++(int)
    {
    	I old = *this;
    	++(*this);
    	return old;
    }
    
    int main(void)
    {
    	I i;
    	cout << "++i" << endl;
    	++i;
    	cout << endl;
    	cout << "i++" << endl;
    	i++;
    	cout << endl;
    
    	return 0;
    }



    结果是:



    从执行结果可以看出,++i就调用了一次构造函数,一次++操作,

    而i++ 调用了两次复制构造函数,两次析构函数,一次++操作符。

    通过上述的比较,大家可以看出是那个效率更好了吧!!!


    2012/9/29

    jofranks 于南昌

  • 相关阅读:
    几个简单递归js 实现
    js中阻止事件冒泡
    判断是否IE 最酷的代码
    C# Hashtable 读取 key 和 value
    ubuntu搭建jdk+jenkins
    Shell逻辑运算符及表达式
    Linux命令的返回值
    python调用c/c++时传递结构体参数
    Git错误总结
    Bash Shell中命令行选项/参数处理
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211397.html
Copyright © 2020-2023  润新知