派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承。如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数。同样派生类也需要添加析构函数来实现一些结束工作。
       当创建对象时,编译系统会自动调用构造函数。当撤销对象时,编译系统会自动调用析构函数。当创建派生类的对象时,首先执行基类的构造函数,然后执行派生类的构造函数。当撤销对象时,则先执行派生类的析构函数,然后再执行基类的析构函数。
例子:
#include"iostream.h"    
class A     //定义一个类    
{    
     public:
        A()        //类的构造函数            
        {
                cout<<"基类的构造函数"<<endl;
        }            
        ~A()     //类的析构函数            
        {
                cout<<"基类的析构函数"<<endl;
        }    
};    
class B:public A    //派生类    
{    
        public:            
        B()                    //派生类的构造函数            
        {
                cout<<"派生类的构造函数"<<endl;
        }            
        ~B()                 //派生类的析构函数            
        {
                cout<<"派生类的析构函数"<<endl;
        } 
}; 
void main() 
{
        B p;                //派生类的对象    
}
输出:
      基类的构造函数
      派生类的构造函数
      派生类的析构函数
      基类的析构函数
            当类内包含其他对象时,将这个类对象叫做内含类对象,该对象的初始化工作必须放在构造函数的初始化列表中,内含类对象和包含它的类对象的构造函数顺序是:先是内含类的构造函数,然后是外部类的构造函数