1. 程式人生 > >派生類中的構造函數和析構函數

派生類中的構造函數和析構函數

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 }

技術分享圖片

派生類中的構造函數和析構函數