C++之++和--操作符重载
来源:互联网 发布:淘宝淘客联盟 编辑:程序博客网 时间:2024/06/09 13:42
一、++用于基础数据类型
在C/C++语言中++操作符用于对变量自增1操作。++操作符可以用做前置,也可以用作后置。先来分析下面代码:
int i = 0;cout << "i++ = " << i++ << endl;cout << "i = " << i << endl;cout << "++i = " << ++i << endl;cout << "i = " << i << endl;
运行结果如下所示:
由上图可知:
i++; // i的值作为整个表达式的返回值,然后i自增1++i; // i先自增1,然后i的值作为整个表达式的返回值
二、++操作符重载
++操作符是可以重载的
1.可以重载为全局函数或者成员函数;
2.后置++操作符需要一个int类型的占位参数;
3.前置++操作符不需要额外的参数。
下面给出++操作符重载为成员函数的示例代码:
#include <iostream>#include <string>using namespace std;class Test{ int mValue;public: Test(int i) { mValue = i; } int value() { return mValue; } // 重载前置++ Test& operator ++ () { ++mValue; return *this; } // 重载后置++ Test operator ++ (int) { Test ret(mValue); mValue++; return ret; }};int main(){ Test t(0); cout << "(t++).value() = " << (t++).value() << endl; cout << "t.value() = " << t.value() << endl; cout << "(++t).value() = " << (++t).value() << endl; return 0;}
运行结果如下图所示:
结果显示跟我们分析的是一致的。
三、++操作符的效率
对于基础类型的变量
- 前置++和后置++的效率基本相同;
- 项目中选择哪种格式根据编码规范和应用场景选择。
对于类类型的对象
- 前置++的效率高于后置++;
- 尽量使用前置++操作符提高程序效率。
四、内容扩展
上面均是用++操作符来讲述的,对于--
操作符和++
操作符的原理是一样的。
阅读全文
1 0
- C/C++ 之 操作符重载
- 类型转换和操作符重载 (c#)
- 【C++】重载“<<"操作符和关键字static!!!
- 关于C++操作符重载之"->"和"*"
- C++之++和--操作符重载
- C++【操作符重载】
- c++::操作符重载
- C++:操作符重载
- 重载操作符>> 和 <<
- 《C++primer》操作符重载之CheckoutRecord相关
- C++_指针悬挂和赋值操作符的重载
- C++_指针悬挂和赋值操作符的重载
- C++_指针悬挂和赋值操作符的重载
- 《More Effective C++》7:千万不要重载 &&, ||, 和 ,操作符
- [C++][基础]9_重载操作符和转换
- 操作符重载(C++)
- C++-重载操作符<< >> = + - * /
- c++_操作符重载
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- std::thread
- 欢迎使用CSDN-markdown编辑器
- 工具类——使用Timber自定义日志并保存文件查看
- 7月书讯:众多畅销书升级!
- C++之++和--操作符重载
- bootstrap 链接打开模态框数据无法刷新的解决方案
- 接口编写规范
- Prototype(原型模式)
- nc6报错 Failed to load ESAPI.properties as a classloader resource.
- hdu 1896 Stones
- 解决org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
- cordova device插件——获取设备信息
- leetcode-77-Combinations