派生类对象构造与析构的顺序
原创
©著作权归作者所有:来自51CTO博客作者河豚的原创作品,请联系作者获取转载授权,否则将追究法律责任
假设A是基类, B是派生类, 顺序如下
构造B对像,从产生到消失的流程
A() -> B() -> ~B() -> ~A()..即符合Last-In-First-Out (LIFO)

#include <map>

#include <
string>

#include <iostream>
class A

{
public:

A(){std::cout<<
"constructor A"<<std::endl;};

~A(){std::cout<<
"desstructor A"<<std::endl;};
void test(){std::cout<<
"invoke test"<<std::endl;};

};
class B:
public A

{
public:

B(){std::cout<<
"constructor B"<<std::endl;};

~B(){std::cout<<
"desstructor B"<<std::endl;};

};
int main(
int argc,
char* argv[]){

B myb;

myb.test();
return 0;

}
运行结果:

constructor A

constructor B

invoke test

desstructor B

desstructor A