关闭

派生类的构造函数和析构函数

628人阅读 评论(0) 收藏 举报
分类:

      如果需要对派生类新增的初始成员进行初始化,就必须对派生类添加新的构造函数。由于基类的构造函数和析构函数不能继承,因此,对继承类基类原有的数据成员的初始化,必须调用基类的构造函数来完成。

在定义派生类时需要解决两个问题:

1.派生类的构造函数如何定义。
2.派生类的构造函数中如何调用基类的构造函数。

例子:

#include <iostream>
using namespace std;
class A
{
public:
	A(int a = 0, int b = 0)//含有默认参数的构造函数
	{
		x = a;
		y = b;
		cout<<"正在调用A类(基类)的构造函数..."<<endl;
	}

	~A() { cout<<"正在调用A类(基类)的析构函数..."<<endl; }
protected:
	int x;
	int y;
};
class B : public A
{
public:
	B(int a = 0, int b = 0, int c = 0) : A(a,b)  //显示调用基类的构造函数
	{
		z = c;
		cout<<"正在调用B类(派生类)的构造函数..."<<endl;
	}

	~B() { cout<<"正在调用B类(派生类)的析构函数..."<<endl; }
	
	void Display()
	{
		cout<<"x = "<<x<<endl;
		cout<<"y = "<<y<<endl;
		cout<<"z = "<<z<<endl;
	}
protected:
	int z;
};

int main()
{
	B Zerone(2013,12,05);
	Zerone.Display();

	return 0;
}
程序运行显示结果:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    About Me
    ...
    个人资料
    • 访问:54761次
    • 积分:1062
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:0篇
    • 译文:7篇
    • 评论:60条
    博客专栏
    最新评论