//繼承時的建構函式: //基類的建構函式不被繼承,需要在衍生類別中自行聲明。//聲明建構函式時,只需要對本類中新增成員進行初始化,對繼承來的基類成員的初始化由基類完成。//衍生類別與基類的建構函式://1.當基類中聲明有預設形式的建構函式或未聲明建構函式時,衍生類別建構函式的聲明中可以省略對基類建構函式的調用。//2.若基類中未聲明建構函式,衍生類別中也可以不聲明,全採用預設形式建構函式。//3.當基類聲明有帶形參的建構函式時,衍生類別也應聲明帶形參的建構函式,提供將參數傳遞給基類建構函式的途徑。//單一繼承時的建構函式舉例: //衍生類別名::衍生類別名(基類所需的形參,本類成員所需的形參):基類名(參數)//{// 本類成員初始化指派陳述式;//};//建構函式的調用次序://1.調用基類建構函式,調用順序按照它們被繼承時聲明的順序(從左向右)。//2.調用成員對象的建構函式,調用順序按照它們在類中聲明的順序。//3.衍生類別的建構函式體中的內容。//繼承時的解構函式//1.解構函式也不被繼承,衍生類別自行聲明。//2.聲明方法與一般(無繼承關係時)類的解構函式相同。//3.不需要顯式地調用基類的解構函式,系統會自動隱式調用。//4.解構函式的調用次序與建構函式相反。#include <iostream.h>class B{ public:B(){b=0;cout<<"B's default constructor called."<<endl;}B(int i){b=i;cout<<"B's constructor called." <<endl;}~B(){cout<<"B's destructor called."<<endl;}void Print() const{cout<<b<<endl;} private: int b;};class C:public B{ public:C(){c=0;cout<<"C's default constructor called."<<endl;}C::C(int i,int j):B(i)//C(int i,int j){c=j;cout<<"C's constructor called."<<endl;}~C(){cout<<"C's destructor called."<<endl;}void Print() const{B::Print();cout<<c<<endl;}private: int c;};int main(){C obj(5,6);obj.Print();return 0;}