override 關鍵字,能夠避免派生類中忘記重寫虛函數的錯誤c++
參數爲類對象自己的引用,用於根據一個已存在的對象複製出一個新的該類的對象,通常在函數中會將已存在對象的數據成員的值複製一份到新建立的對象中,若沒有顯示的寫複製構造函數,則系統會默認建立一個複製構造函數,但當類中有指針成員時,由系統默認建立該複製構造函數會存在風險,具體緣由請查詢有關 「淺拷貝」 、「深拷貝」的文章論述ide
注意,這個相似複製構造函數,將=右邊的本類對象的值複製給等號左邊的對象,它不屬於構造函數,等號左右兩邊的對象必須已經被建立 若沒有顯示的寫=運算符重載,則系統也會建立一個默認的=運算符重載,只作一些基本的拷貝工做。 若是想禁用拷貝&複製功能,則須要顯示的將類的拷貝構造函數和等號重載函數定義爲私有函數
class DoubleBuffer{ protected: std::string name; private: DoubleBuffer(const DoubleBuffer&); DoubleBuffer& operator=(const DoubleBuffer&); }
指針
重載聲明是指一個與以前已經在該做用域內聲明過的函數或方法具備相同名稱的聲明,可是它們的參數列表和定義(實現)不相同。 當調用一個重載函數或重載運算符時,編譯器經過把您所使用的參數類型與定義中的參數類型進行比較,決定選用最合適的定義。選擇最合適的重載函數或重載運算符的過程,稱爲重載決策。c++11
提供了一個用省略號表示的元運算符,使得能夠聲明表示模板參數列表,其語法以下: template<typename... Args> void show(Args... args){ } 其中Args表示模板參數列表,args表示函數參數列表。code
try { } catch (...) { }
對象
auto:用來實現自動類型推斷 decltype:將變量的類型指定爲表達式的類型。 decltyte (x) y; 將y設爲與x相同的類型,其中x是一個表達式。作用域