一、括號法
Person p;//注意:對於調用無參構造函數不能加括號,如:Person p();原因是c++會將此代碼視為一個函數聲明,參考函數聲明,如:int test();
Person p(10);//調用有參構造
二、顯式法
Person p=Person(10);//調用有參構造
Person p1=Person(p);//調用拷貝構造
注意:1、Person(參數)單獨寫表示生成了一個匿名對象,當前行結束后,該對象立即析構
2、不能利用拷貝構造函數,初始化一個匿名對象,編譯器認為是一個對象聲明,例如Person(p),編譯器會將括號刪除,直接表示為 Person p;
三、隱式法
Person p=10;//轉換為顯式法:Person p=Person(10)
person p1=p;//轉換為顯式法:Person p1=Person(p)