構造函數的分類及調用
-
按照參數分類
1.無參構造(默認構造) 2.有參構造
-
按照類型分類
1.普通構造函數2.拷貝構造函數
-
無參構造寫法和調用
Person p1; 注意不能寫Person (),因為編譯器認為這個是函數聲明
-
有參構造函數寫法 和調用
Person p2(10) 或者Person p2=Person(10)Person (10);匿名對象,執行當前行后釋放這個對象
-
拷貝構造函數
Person (const Person &p)Person p1(p2)或者 Person p1=Person(p2);不能用拷貝構造函數初始化匿名對象如果寫成Person (p1) 這種寫法等價于 Person p1寫到右值可以做拷貝構造函數
-
Person p7 = 100; //相當于調用了 Person p7 =Person(100),隱式類型轉化
Person p8 = p7; //相當于Person p8=Person(p7) -
拷貝構造函數調用時機
1 用已經創建好得對象來初始化新得對象2 以值傳遞得方式給參數傳參3 以值方式返回局部對象
-
構造函數的調用規則
1 如果提供了有參的構造,系統不會提供默認的構造,還是會提供拷貝構造函數2 如果提供了拷貝構造函數,系統不會提供其他的構造函數了。3.系統默認給一個類提供3個函數 默認構造 ,拷貝構造,析構函數