如果既要利用引用提高程式的效率,又要保護傳遞給函式的資料不在函式中被改變,就應使用常引用。
常引用宣告方式:const 型別識別符號 &引用名=目標變數名; 例1
int a ;
const int &ra=a;
ra=1; //錯誤
a=1; //正確
例2
string foo( );
void bar(string & s);
那麼下面的表示式將是非法的:
bar(foo( ));
bar("hello world");
原因在於foo( )和"hello world"串都會產生乙個臨時物件,而在c++中,這些臨時物件都是const型別的。因此上面的表示式就是試圖將乙個const型別的物件轉換為非const型別,這是非法的。
引用型引數應該在能被定義為const的情況下,盡量定義為const 。
在什麼時候需要使用「常引用」?
如果既要利用引用提高程式的效率,又要保護傳遞給函式的資料不在函式中被改變,就應使用常引用。常引用宣告方式 const 型別識別符號 引用名 目標變數名 例1int a const int ra a ra 1 錯誤 a 1 正確 例2string foo void bar string s 那麼下面的...
什麼時候需要使用try catch
執行預料不到的情況,或出錯的可能性很大時,使用try catch語句。1 構造乙個檔案輸入流,上傳檔案時,線上環境的記憶體情況不確定 出錯的可能性很大。2 檔案上傳寫入,資料庫事務的提交,還有攝像頭和印表機的使用 使用資料庫事務的時候使用try catch,如果事務執行成功就提交事務,如果事務執行失...
到底什麼時候需要使用 final
final final修飾屬性,則該屬性不可再次改變,而且在初始化中必須在屬性或者是構造方法中其中且中有乙個中初始化他 final修飾方法,則該方法不可被重寫 final修飾類,則不可被繼承 1 當內部類需要引用外部類的區域性變數或者是傳入的引數時那麼該變數必須被定義為final 防止該變數在內部類...