zoukankan      html  css  js  c++  java
  • C++语法小记---前置操作符和后置操作符

    前置操作符和后置操作符
    • 单独的"++i"和"i++"是否有区别

      • 对于基本类型:

        • 二者没有区别,因为编译器会对代码进行优化,二者的汇编代码完全相同

      • 对于类类型:

        • 二者有区别

        • 前置的效率更高,建议使用

    • 重载"++i"和"i++"

      • 重载前置操作符:classname& operator ++()

      • 重载后置操作符:classname operator ++(int)

     1 #include <iostream>
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 class Test
     7 {
     8     int mValue;
     9 public:
    10     Test(int i)
    11     {
    12         mValue = i;
    13     }
    14     
    15     int value()
    16     {
    17         return mValue;
    18     }
    19     
    20     Test& operator ++ () //前置重载
    21     {
    22         mValue += 1;
    23         return *this;
    24     }
    25     
    26     Test operator ++ (int) //后置重载
    27     {
    28         Test ret(mValue);
    29         mValue += 1;
    30         return ret;
    31     }
    32 };
    33 
    34 int main()
    35 {   
    36    Test t1(1);
    37    cout<<"t1++ = "<<(++t1).value()<<endl; // t1++ = 2
    38    
    39    Test t2(1);
    40    cout<<"t2++ = "<<(t2++).value()<<endl; //t2++ = 1
    41    
    42     return 0;
    43 }
  • 相关阅读:
    标准输入输出
    UNIX基础概念
    phpstrom设置php环境
    nginx+php+swoole安装记录
    MySQL索引
    生成器来解决大文件读取,大数据下载
    PHP调优
    PHP-FPM详解
    远程登录服务器配置
    HTTPS配置
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11295336.html
Copyright © 2011-2022 走看看