2009年4月15日 星期三

C++ 類別初始化順序

C++的類別初始化順序是 Parent Class>member>this
而解構順序則正好反過來Parent Class<member<this

下面舉個簡單的例子


class Parent{
Parent(){
cout<<"建構parent"<<endl;
}
~Parent(){
cout<<"解構parent"<<endl;
}
};
class Member{
Member(){
cout<<"建構Member"<<endl;
}
~Member(){
cout<<"解構Member"<<endl;
}
};
class My:public Parent{
Member m;
My(){
cout<<"建構My"<<endl;
}
~My(){
cout<<"解構My"<<endl;
}
};

void main()
{
My m;
}


結果將是

建構parent
建構Member
建構My
解構My
解構Member
解構parent

沒有留言: