首页 > 代码库 > 构造函数初始化列表

构造函数初始化列表

今天我在想类里面类类型是什么时候初始化的如:class A{    A(B& bb)    {        b = bb;    }    public:        B b;};class B{    B();};假如A a;定义一个对象会为对象的数据成员分配空间,然后调用构造函数进行初始化从概念上讲构造函数的执行分为两个阶段初始化阶段和计算阶段,先初始化再计算对于类里面的所有类类型都是在初始化阶段进行的初始化,即使其没有出现在初始化列表中,没有在初始化列表里面的直接调用默认构造函数,在里面调用指定的函数所以对于需要初始化的要在列表中初始化,因为这样少一次调用默认构造函数的机会,效率提升,另外对于const和引用必须在列表里面初始化对于内置或者复合的则两者一样随便哪一种

 

构造函数初始化列表