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

原创 2013年12月05日 22:50:44

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

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

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;
}
程序运行显示结果:


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

继承的三种方式与派生类的构造函数和析构函数~

一:继承的三种方式 形式: class 派生类名:继承方式  基类名,继承方式  基类名,继承方式  基类名····· ①公有继承(public 类名) 1.在派生类中基类的公有成员和受保护的成员...

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

派生类不仅继承了基类的成员,还添加了新的成员进行了功能的扩充。因此在建立派生类的实例对象时,不仅要初始化派生类对象的基类成员,还要对派生类的新增成员进行初始化。但由于基类的构造函数和析构函数不能被继承...

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

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

C++派生类构造函数和析构函数调用顺序

++派生类构造函数调用顺序(详解) 我们来看下面一段代码:   class B1   {   public:   B1(int i) {cout   };   class B2   {...

多重继承中派生类的构造函数和析构函数

#include using namespace std; class Base1 { public: Base1(int i) { cout

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

派生类的构造函数与析构函数: 派生类不能继承基类的构造函数和析构函数,必须自己定义。由于派生类与基类的特殊关系,在设计派生类的构造函数时,不仅要考虑派生类新增数据成员的初始化, 也要考虑基类数据成...

面向对象的程序设计-学习笔记-23-派生类的构造函数和析构函数

/*派生类的构造函数和析构函数 */ #include using namespace std; class base { float x,y; public: base(float ...
  • ljp1919
  • ljp1919
  • 2013年01月16日 10:56
  • 385

【一天一篇CPP】派生类的构造函数和析构函数

1.基类的构造函数是不能继承的,在声明派生类时,派生类并没有把基类的构造函数继承过来,但是可以通过一种显式的声明来调用基类的构造函数。 对于析构函数,系统会自动调用基类的析构函数,详细看下面的 “3注...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:派生类的构造函数和析构函数
举报原因:
原因补充:

(最多只允许输入30个字)