構造函數
調用方法
//括號法(常用)
Person p1(100); //有參構造
Person p2(p1); //拷貝構造//注意:不要用括號法調用無參構造,會和 函數聲明 混淆。
//顯示法
Person p3 = Person(); //無參構造
Person p4 = Person(100); //有參構造
Person p5 = Person(P4); //拷貝構造
//隱式類型轉換法(不常用)
Person p6 = 100; //相當于: Person p6 = Person(100);
Person p7 = P6; //相當于: Person p7 = Person(p6);
//匿名對象:當前行執行完后立即釋放。
Person(); //無參構造
Person(100); //有參構造//注意:不要用匿名對象調用 拷貝構造,會被編譯器解析為 Person p3; 實例化對象。如果已有 p3 對象,p3就重定義。
其他
構造函數分類
按參數類型:分為無參構造函數和有參構造函數
按類型分類:分為普通構造函數和拷貝構造函數
構造函數 調用規則
默認情況下,編譯器至少為我們寫的類增加3個函數: 無參構造,拷貝構造(值拷貝),析構函數。
用戶定義了拷貝構造函數,c++不會再提供任何默認構造函數
用戶定義了有參構造(非拷貝),c++不再提供默認無參構造,但是會提供默認拷貝構造