c++ 2.1 编译器何时创建默认构造函数
来源:互联网
首先解释第一点,只有四种情况才会导致 ”编译器必须为未声明 constructor 之 classes 合成一个 default constructor“。被合成出来的 constructor 只能满足编译器(而非程序)的需要。它们之所以能够完成任务,是借着 “调用 member object 或base class 的 default constructor” 或是 “为每一个 object 初始化其virtual function 机制或 virtual base class 机制”而完成。至于没有存在那四种情况,而又没有声明任何 constructor 的 classes,我们说它拥有的是 implicit trivial(浅薄而无能,没啥用的),它们实际上并不会被合成出来。,只有四种情况才会导致 ”编译器必须为未声明 constructor 之 classe