派生类的构造函数及其对象的初始化

派生类的构造函数及其对象的初始化

ID:14833660

大小:122.00 KB

页数:5页

时间:2018-07-30

派生类的构造函数及其对象的初始化_第1页
派生类的构造函数及其对象的初始化_第2页
派生类的构造函数及其对象的初始化_第3页
派生类的构造函数及其对象的初始化_第4页
派生类的构造函数及其对象的初始化_第5页
资源描述:

《派生类的构造函数及其对象的初始化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、派生类的构造函数及其对象的初始化由于构造函数不能被继承,因此,派生类的构造函数中除了对派生类中数据成员进行初始化外,还必须通过调用直接基类的构造函数来对基类中数据成员初始化,一般地将,对派生类中数据成员初始化放在该派生类构造函数的函数体内,而调用基类构造函数的基类中数据成员初始化放在该构造函数的成员初始化表中。派生类构造函数的格式如下表示:<派生类构造函数名>(<参数表>) : <成员初始化表>{  <派生类构造函数的函数体>}其中,<派生类构造函数名>同该派生类的类名。<成员初始化表>中包含如下的初始化项:①

2、基类的构造函数,用来给基类中数据成员初始化;②子对象的类的构造函数,用来给派生类中子对象的数据成员初始化;③派生类中常成员的初始化。<派生类构造函数的函数体>用来给派生类中的数据成员初始化。派生类构造函数的调用顺序如下:①基类构造函数;②子对象的构造函数;③成员初始化表中其他初始化项;④派生类构造函数的函数体。在基类中有默认构造函数时,派生类的构造函数中可隐含调用基类中的默认构造函数。派生类中析构函数由于析构函数也不能继承,因此派生类的析构函数中将调用直接基类的析构函数。执行派生类析构函数的顺序正好与指向派生类

3、的构造函数的顺序相反。先调用派生类的析构函数,再调用子对象类的析构函数,最后调用直接基类的析构函数。例如:分析下列程序的输出结果,掌握派生类构造函数的定义格式和执行顺序,以及派生类析构函数的调用方法。 1#include 2using namespace std; 3class A 4{ 5public: 6    A() 7    { 8         a=0; 9         cout<<"Default constructor called. A";10    }11    

4、A(int i)12    {13        a=i;14        cout<<"Constructor called. A";15    }16    ~A()17    {18        cout<<"Destructor called. A";19    }20    void Print()21    {22        cout<

5、9    int a;30};31class B:public A32{33public:34    B()35    {36        b=0;37        cout<<"Default constructor called. B";38    }39    B(int i,int j,int k);40    ~B()41    {42        cout<<"Destructor called. B";43    }44    void Print()45    {46       

6、 A::Print();47        cout<

7、63    int i;64    for(i=0;i<2;i++)65        bb[i].Print();66    return 0;67}68运行结果为:Default constructor calledA.Default constructor calledA.Default constructor calledB.Default constructor calledA.Default constructor calledA.Default constructor calledB.Constr

8、uctor called. AConstructor called. AConstructor called. BDestructor called. BDestructor called. ADestructor called. AConstructor called. AConstructor called. AConstructor called. BDestructor cal

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。