问题及代码:
/*
02.*Copyright (c) 2015,烟台大学计算机学院
03.*All rights reserved.
04.*文件名称:text.cpp
05.*作者:徐健
06.*完成日期:2015年5月3日
07.*版本号:v1.0
08.*
09.*问题描述: 阅读程序,写出执行结果
10.*输入描述: 无
11.*程序输出:基类,派生类等之间的执行顺序输出
12.*/
#include <iostream>
using namespace std;
class Data
{
public :
Data(int i):x(i){cout<<"A";}
~Data(){cout<<"B";}
private :
int x;
};
class Base
{
public :
Base(int i):b1(i){cout<<"C";}
~Base(){cout<<"D";}
private :
int b1;
};
class Derived:public Base{
public :
Derived(int i,int j):Base(i),d1(j){cout<<"E";}
~Derived (){cout<<"F";}
private:
Data d1;
};
int main()
{
Derived obj (1,2);
return 0;
}
运行结果:
知识点总结:
知识点总结:
对于派生类来说,当调用派生类的构造函数时,如果构造函数中没有基类的构造函数的赋值,则先调用基类的默认构造函数,如果有,则调用基类的构造函数,然后再按照在派生类中声明的对象顺序来调用。
学习心得:
通过一段时间的学习,对于类的一些基本的运行方式已经有了初步的理解,尤其是对于构造函数和析构函数的使用更加的深刻,相对于现在学习的继承方面的知识,有一个扎实的基础显得尤为重要!