136
京東網上商城
C++編程規範之28:優先使用++和—的標準形式。優先調用前綴形式
摘要:
如果定義++c,也要定義c++:遞增和遞減操作符很麻煩,因為它們都有前綴和後綴形式,而兩種形式語義又略有不同。定義operator ++和operator –時,應該模仿它們對應的內置操作符,如果不需要原值,應該優先調用前綴版本。
對於++和—而言,後綴形式返回的是原值,而前綴形式返回的是操作後的新值。應該用前綴形式實現後綴形式,標準形式是:
//前綴形式++ T&T::operator++() { //執行遞增 return *this; } //前綴形式-- T&T::operator--() { //執行遞減 return *this; }
//後綴形式++ TT::operator(int) { T old(*this); ++*this; return old; } //後綴形式-- TT::operator(int) { T old(*this); --*this; return old; }
因此,在調用代碼時,要優先使用前綴形式,除非確實需要後綴形式返回的原值。前綴形式在語義上與後綴形式是等價的,輸入工作量也相當,隻是效率會略高一些,因為前綴形式少創建了一個對象。這不是不成熟的優化,這是在避免不成熟的劣化。
最後更新:2017-04-03 12:53:54