类的继承—派生类的函数调用分析

题目:定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行状况。
代码以下:ios

/*定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行状况。*/
#include <iostream>
using namespace std;
//如下是类的声明
class baseclass
{
public:
	int number;
	int getage()
	{
		return i1;
	}
	baseclass()
	{
		cout<<"baseclass类的默认构造函数\n";i1=0;
		cout<<"i1:"<<getage()<<endl;
	}
	baseclass(int i,int j)
	{
		cout<<"baseclass类的有参构造函数\n";i1=i;
		cout<<"i1:"<<getage()<<endl;
	}
	baseclass(baseclass&b1)
	{
		cout<<"baseclass类的拷贝构造函数\n";i1=b1.i1;
		cout<<"i1:"<<getage()<<endl;
	}
	~baseclass()
	{
		cout<<"baseclass类的析构函数\n";}
private:
	int i1;
};
class derivedclass:public baseclass
{
public:
	derivedclass()
	{
		cout<<"derivedclass类的默认构造函数\n";i2=0;
		cout<<"i2:"<<getage()<<endl;
	}
	derivedclass(int i,int j):baseclass(i,j)
	{
		cout<<"derivedclass类的有参构造函数\n";i2=j;
		cout<<"i2:"<<getage()<<endl;
	}
	derivedclass(derivedclass&d1):baseclass(d1)
	{
		cout<<"derivedclass类的拷贝构造函数\n";i2=d1.i2;
		cout<<"i2:"<<getage()<<endl;
	}
	~derivedclass()
	{
		cout<<"derivedclass类的析构函数\n";}
private:
	int i2;
};
int main()
{
	derivedclass D;
	derivedclass D2=D;
	derivedclass D3(1,3);
	return 0;
}