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