权重较高网站,新手网页制作,备案平台,wordpress jquery版本号参考博客#xff1a;传送门1
当类中含有对象成员时#xff1a;
类的构造函数要包含对成员对象的初始化#xff0c;如果构造函数的成员初始化列表没有包含对成员对象的初始化#xff0c;系统会自动调用成员对象的无参构造函数。顺序上#xff1a;先调用成员对象的构造函数…参考博客传送门1
当类中含有对象成员时
类的构造函数要包含对成员对象的初始化如果构造函数的成员初始化列表没有包含对成员对象的初始化系统会自动调用成员对象的无参构造函数。顺序上先调用成员对象的构造函数当所有的成员对象都执行了自身类的构造函数以后再执行当前类的构造函数调用析构函数时先调用类的构造函数再调用成员对象的构造函数。
当类继承于另一个类时
如果没有显式地在构造函数的成员初始化列表中调用基类的构造函数会自动先调用基类的无参构造函数。析构的时候先调用派生类的析构函数再调用基类的构造函数。
当类中含有成员对象同时继承了某个类的时候他们的构造函数析构函数的顺序是固定的与成员初始化列表中的顺序没有关系
构造函数基类-成员对象-派生类 析构函数派生类-成员对象-基类
例如
#includeiostream
#includecstdio
using namespace std;class A
{
public:A(){cout A endl;}~A(){cout ~A endl;}
};class C
{
public:C(){cout C endl;}~C(){cout ~C endl;}
};class B:public A
{C c;
public:B(){cout B endl;}~B(){cout ~B endl;}
};int main()
{B b;
}运行结果