C++中前置操作符和后置操作符的重载
生活随笔
收集整理的這篇文章主要介紹了
C++中前置操作符和后置操作符的重载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 C++中前置操作符和后置操作符的重載
- 1.1 前置操作符和后置操作符的原生語義
- 1.2 ++操作符的重載
- 1.3 前置++和后置++的真正區別
1 C++中前置操作符和后置操作符的重載
1.1 前置操作符和后置操作符的原生語義
下面的代碼有區別嗎?為什么?
在實際測試中發現,如上兩行代碼對應的匯編語句一摸一樣。
我們需要知道如下事實:
- 現代編譯器產品會對代碼進行優化。
- 優化使得最終的二進制程序更加高效。
- 優化后的二進制程序失去了C/C++的原生語義。
- 不可能從編譯后的二進制程序還原C/C++程序。
- C/C++開發的軟件無法完全反編譯。
1.2 ++操作符的重載
++操作符可以被重載:
- 全局函數和成員函數均可進行重載,推薦使用成員函數。
- 重載前置++操作符不需要額外的參數。
- 重載后置++操作符需要一個int類型的占位參數。
++操作符的重載:
#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);t++;++t;return 0; }1.3 前置++和后置++的真正區別
對于基礎類型的變量:
- 前置++的效率與后置++的效率基本相同。
- 根據項目組編碼規范進行選擇。
對于類類型的對象:
- 前置++的效率高于后置++。
- 盡量使用前置++操作符提高程序效率。
參考資料:
總結
以上是生活随笔為你收集整理的C++中前置操作符和后置操作符的重载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中逗号操作符的重载
- 下一篇: 全国各地都有哪些好吃的烧烤?