C++ 构造、析构的顺序

 

/*
构造时:先成员,后构造函数,然后处理父类
析构时与构造时完全相反顺序。

baseC()
base()
derivedC()
derived()
~derived()
~derivedC()
~base()
~baseC()
*/

#include 
<iostream>

using namespace std;

class baseC
{
public:
    baseC() { cout 
<<"baseC()"<<endl; }
    
~baseC() { cout <<"~baseC()"<<endl; }
};

class derivedC
{
public:
    derivedC() { cout 
<<"derivedC()"<<endl; }
    
~derivedC() { cout <<"~derivedC()"<<endl; }
};


class base
{
public:
    
base() { cout <<"base()"<<endl; }
    
~base() { cout <<"~base()"<<endl; }
    
class baseC c;
};

class derived: public base
{
public:
    
class derivedC c;
    derived() { cout 
<<"derived()"<<endl; }
    
~derived() { cout <<"~derived()"<<endl; }
};


int main()
{
    derived d;
        
return 0;
}


posted on 2009-03-23 09:50  庄冠华  阅读(815)  评论(0编辑  收藏  举报

导航