- 类的数据成员的初始化是在构造函数体运行之前完成的。
- 类的数据成员按照在类中声明的顺序初始化,如果构造函数初始值列表中存在显示初始化成员,则使用构造函数初始值列表;如果构造函数初始值列表没有对应的数据成员初始值,则执行默认初始化。
方法一:在构造函数初始化列表中进行初始化:
class Subtarget{ Subtarget(int Parameter1, int Parameter2){};
} //定义一个类Subtarget,在其他类中可以像使用内置类型一样将该类的对象作为成员对象 class Target{Target()::subtarget{4,8}{} //构造函数初始值列表中也可以使用subtarget(4,8)的形式。Subtarget subtarget;
}
构造函数初始值列表名字后面紧跟的初始值可以用(),也可以用{}括起来。
方法二:在类的声明时可以初始化,但不能使用()括号方式初始化。
class Subtarget{ Subtarget(int Parameter1, int Parameter2){};
} //定义一个类Subtarget,在其他类中可以像使用内置类型一样将该类的对象作为成员对象 class Target{Subtarget subtarget{4,8};//成员对象初始化, !!注意:不能使用Subtarget subtarget(4,8),会报错:error:expected identifier before numeric constant
}