派生类构造函数和析构函数的执行顺序
2014-03-05 12:47
801 查看
派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承。如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数。同样派生类也需要添加析构函数来实现一些结束工作。
当创建对象时,编译系统会自动调用构造函数。当撤销对象时,编译系统会自动调用析构函数。当创建派生类的对象时,首先执行基类的构造函数,然后执行派生类的构造函数。当撤销对象时,则先执行派生类的析构函数,然后再执行基类的析构函数。
例子:
#include"iostream.h"
class A //定义一个类
{
public:
A() //类的构造函数
{
cout<<"基类的构造函数"<<endl;
}
virtual ~A() //类的析构函数
{
cout<<"基类的析构函数"<<endl;
}
};
class B:public A //派生类
{
public:
B() //派生类的构造函数
{
cout<<"派生类的构造函数"<<endl;
}
~B() //派生类的析构函数
{
cout<<"派生类的析构函数"<<endl;
}
};
void main()
{
B p; //派生类的对象
}
输出:
基类的构造函数
派生类的构造函数
派生类的析构函数
基类的析构函数
当创建对象时,编译系统会自动调用构造函数。当撤销对象时,编译系统会自动调用析构函数。当创建派生类的对象时,首先执行基类的构造函数,然后执行派生类的构造函数。当撤销对象时,则先执行派生类的析构函数,然后再执行基类的析构函数。
例子:
#include"iostream.h"
class A //定义一个类
{
public:
A() //类的构造函数
{
cout<<"基类的构造函数"<<endl;
}
virtual ~A() //类的析构函数
{
cout<<"基类的析构函数"<<endl;
}
};
class B:public A //派生类
{
public:
B() //派生类的构造函数
{
cout<<"派生类的构造函数"<<endl;
}
~B() //派生类的析构函数
{
cout<<"派生类的析构函数"<<endl;
}
};
void main()
{
B p; //派生类的对象
}
输出:
基类的构造函数
派生类的构造函数
派生类的析构函数
基类的析构函数
相关文章推荐
- 派生类的构造函数赋值和析构函数执行顺序
- 派生类构造函数和析构函数的执行顺序
- 基类和派生类的构造函数和析构函数执行顺序
- 4.5 派生类构造函数和析构函数的执行顺序举例
- 派生类构造函数和析构函数的执行顺序
- 关于基类和派生类的构造函数和析构函数的执行顺序问题
- 关于基类和派生类的构造函数和析构函数的执行顺序问题
- C++学习笔记(6)----基类和派生类的构造函数和析构函数的执行顺序
- 例4.8 含有对象成员的派生类构造函数和析构函数的执行顺序
- 派生类构造函数和析构函数的调用顺序(C++)
- c++学习笔记4,派生类的构造函数与析构函数的调用顺序(一)
- C++ 中构造函数与析构函数的执行顺序
- C++继承时构造函数和析构函数的执行顺序
- 构造函数与析构函数执行顺序及其与虚函数关系
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容 【转】 参考度4.6星
- 例4.9 含有多个对象成员的派生类构造函数的执行顺序
- C#中基类和派生类的构造函数以及变量的执行顺序整理
- c++ 内存申请释放,构造函数,析构函数,执行顺序
- 关于构造函数和析构函数的执行顺序
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)