派生類從繼承可以繼承來所有的成員(變數和方法) 除了建構式和解構式
派生類怎么初始化從基類繼承來的成員變數的呢?通過呼叫基類的建構式來初始化
派生類的建構式和解構式,負責初始化和清理派生類部分
派生類從基類繼承來的成員的初始化和清理由誰負責?是由基類的構造和解構式來負責
派生類物件的構造和析構的程序是:
1:派生類呼叫基類的建構式,初始化化從基類繼承來的成員
2:呼叫派生類自己的建構式,初始化派生類自己特有的成員
.....派生類物件的作用域到期了
3:呼叫派生類的解構式,釋放派生類成員可能占用的外部資源(堆記憶體,檔案)
4:呼叫基類的解構式,釋放派生類記憶體中,從基類繼承來的成員可能占用的外部資源(堆記憶體,檔案)
class Base
{
public:
Base(int data):ma(data){
cout<<"Base"<<endl;
}
~Base(){cout<<"~Base()"<<endl;}
protected:
int ma;
};
class Derive : public Base
{
public:
Derive(int data):Base(data),mb(data){
cout<<"Derive"<<endl;
}
~Derive(){cout<<"~Derive()"<<endl;}
private:
int mb;
};
int main(){
Derive d(20);
return 0;
}
Base()->Derive()->~Derive()->~Base()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/538496.html
標籤:C++
上一篇:<一>繼承的基本意義
下一篇:<三>關于多載 隱藏 覆寫
