使用引用引數的主要原因有兩個:
程式設計師能修改呼叫函式中的資料物件
通過傳遞引用而不是整個資料–物件,可以提高程式的執行速度
一般的原則:
對於使用引用的值而不做修改的函式:
如果資料物件很小,如內建資料型別或者小型結構,則按照值傳遞
如果資料物件是陣列,則使用指標(唯一的選擇),並且指標宣告為指向const的指標
如果資料物件是較大的結構,則使用const指標或者引用,已提高程式的效率。這樣可以節省結構所需的時間和空間
如果資料物件是類物件,則使用const引用(傳遞類物件引數的標準方式是按照引用傳遞)
對於修改函式中資料的函式:
如果資料是內建資料型別,則使用指標
如果資料物件是陣列,則只能使用指標
如果資料物件是結構,則使用引用或者指標
如果資料是類物件,則使用引用
什麼時候使用引用
當必須指向乙個物件並且不想改變其指向時,或者在過載操作符並為防止不必要的語義誤解時,你應該使用引用 而在除此之外的其他情況下,則應使用指標。下面這個例子是引用指向乙個物件並且不會改變其指向,這個 new出來的物件 只能被引用改變。關於在過載操作符並為防止不必要的語義誤解時使用引用,參考 more e...
什麼時候使用抽象類, 什麼時候使用介面
介面是一種協定,抽象類則相當於類模板。使用抽象類,而不要使用介面來分離協定與實現。如果需要提供多型層次結構的值型別,使用介面。如果乙個型別必須實現多個協定,或者協定適用於多種型別,使用介面。雖然抽象類和介面都支援將協定與實現分離開來,但介面不能指定以後版本中的新成員,而抽象類可以根據需要新增成員以支...
什麼時候使用介面,什麼時候使用抽象類
使用抽象類是為了 的復用,而使用介面的動機是為了實現多型性。抽象類適合用來定義某個領域的固有屬性,也就是本質,介面適合用來定義某個領域的擴充套件功能。一 什麼時候使用抽象類?當2個或多個類中有重複部分的時候,我們可以抽象出來乙個基類,如果希望這個基類不能被例項化,就可以把這個基類設計成抽象類。當需要...