物件的構造和解構函式
阿新 • • 發佈:2019-01-07
建構函式和解構函式,分別對應變數的初始化和清理,變數沒有初始化,使用後果未知;沒有清理,則會記憶體管理出現安全問題。
建構函式和解構函式寫法
建構函式:與類名相同,沒有返回值,不寫void,可以發生過載,可以有引數,編譯器自動呼叫,只調用一次。
解構函式:~類名,沒有返回值,不寫void,不可以發生過載,不可以有引數,編譯器自動呼叫,只調用一次。
建構函式和解構函式的作用域是public下才可以呼叫到,不寫預設private,呼叫不到。
如果程式猿不提供,系統會預設提供,構造和解構函式,函式體為空。
1 class Person{ 2 public: 3 Person(){4 cout << "無參建構函式" << endl; 5 } 6 ~Person(){ 7 cout << "無參解構函式" << endl; 8 } 9 }; 10 11 void test01(){ 12 Person p; 13 } 14 15 int main(){ 16 17 test01(); 18 system("pause"); 19 return 0; 20 }
建構函式的分類和呼叫
按照引數分類:有參構造和無參構造;按照型別分類:普通構造和拷貝建構函式。