源码
// 12Inhe_Init_list.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
class Base
{
protected:
int i;
public:
Base(int ai):i(ai){}
};
class Derived :public Base
{
protected:
int j;
public:
Derived(int ai,int aj):Base(ai),j(aj){}
};
//构建一个子类对象,是否会调用父类的构造函数?顺序如何?
//考虑“组合(Composition)”关系,是否存在同样的规律?
//如果采用如Derived构造中的写法,多个成员的初始化顺序如何决定?
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
构建一个子类对象,是否会调用父类的构造函数?顺序如何?
是。先父类默认构造函数。再自己的。
如果采用如Derived构造中的写法,多个成员的初始化顺序如何决定?
成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。