构造函数初始化列表(与注意事项)

  1. 在B类中,组合了一个A类的对象(A类设计了有参构造函数),根据构造函数的调用规则,写了 就必须要用,但是B并没有机会初始化A,因此编译时系统会出错。因此需要使用新的语法规则:Constructor:: Constructor:m1(v1),m2(v1,v2),m3(v3),举例:
#include

class A
{
public:
	A(int m_a) //A是含参构造体
	{
		a = m_a;
		std::cout<<"构造函数"<<"a的值为: "<
  1. 如果在对象中包含const变量,则一定要在构造的时候对其初始化eg:const int c;
    Constructor:: Constructor:m1(v1),m2(v1,v2),m3(v3),c(0),即要对c进行赋值
  2. 不仅在有参或无参构造函数后面可以跟初始化列表,在复制构造函数后面也可以跟初始化列表。
  3. 如果对象B中组合了对象A,,若 B obj1,则对应的构造函数那一行全部都会执行,eg:
    B(int m_b1,int m_b2):a1(1),a2(2),则会执行a1、a2、obj的构造函数,而不是仅仅执行obj的构造函数。
  4. 直接写B(100,200)这也是一个匿名对象,会在建立一个构造体之后立刻被析构。
  5. 不要在构造函数中调用构造函数

你可能感兴趣的:(构造函数初始化列表(与注意事项))