/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:time.cpp
*作者:刘天恩
*完成时间:2015年5月24号
*版本号:v1.0
*问题描述:阅读程序
*输入描述:
*程序输出:
*/
#include <iostream>
using namespace std;
class B
{
public:
B(int x=0)
{
X=x;
cout<<"B("<<x<<")\n";
}
~B()
{
cout<<"~B()\n";
}
void print()
{
cout <<X<< " ";
}
private:
int X;
};
class D: public B
{
public:
D (int x, int y):B(x)
{
Y=y;
cout<<"D("<<x<<","<<y<<")\n";
}
~D()
{
cout<<"~D()\n";
}
void print() //与基类中的成员函数同名!这个冲突如何解决的?!
{
B::print();
cout <<Y<<endl;
}
private:
int Y;
};
int main()
{
D d(11,22);
d.print();
return 0;
}
运行结果:
学习心得:
在建立一个对象时,执行构造函数的顺序:1.派生类构造函数先调用基类构造函数2.再执行派生类构造函数本身(即派生类构造函数的函数体)
在派生类对象释放时,先执行派生类析构函数,再执行基类析构函数