派生類中的構造函數和析構函數
阿新 • • 發佈:2018-04-17
png truct style call called 調用 AI AS col
1 class base_class{ 2 public: 3 base_class(){ 4 cout<<"base_class constructor called\n"; 5 } 6 ~base_class(){cout<<"base_class destructor called\n"; //虛函數 將調用派生類的析構函數 再調用基類的析構函數 7 } 8 }; 9 class derived_class:public base_class{ 10 public: 11 derived_class(){12 cout<<"derived_class constructor called\n"; 13 } 14 ~derived_class(){ 15 cout<<"derived_class destructor called\n"; 16 } 17 }; 18 void main(){ 19 derived_class *sample_ptr=new derived_class; //當創建一個派生類變量時,先調用基類的構造函數,再調用派生類的構造函數 20 system("pause"); 21 }
運行:
當新建一個派生類變量時,首先調用基類的構造函數,然後調用派生類的構造函數
刪除該變量,調用析構函數,首先調用派生類的析構函數,然後調用基類的析構函數
1 void main(){ 2 derived_class *sample_ptr=new derived_class; //當創建一個派生類變量時,先調用基類的構造函數,再調用派生類的構造函數 3 delete sample_ptr; 4 sample_ptr=NULL; //刪除變量後,調用析構函數,首先調用派生類的析構函數,然後調用基類的析構函數 5 system("pause"); 6 }
派生類中的構造函數和析構函數