若未声明构造函数, 则编译器会生成一个默认的构造函数, 这有可能导致某些成员未被初始化或被初始化为不恰当的值.
定义:
new 一个不带参数的类对象时, 会调用这个类的默认构造函数....这么做的原因是: 如果你没有提供其它构造函数, 又没有定义默认构造函数, 编译器将为你自动生成一个. 编译器生成的构造函数并不会对对象进行合理的初始化....对于用户定义的类型, 移动操作一般是通过移动构造函数和移动赋值操作符实现的.
拷贝 / 移动构造函数在某些情况下会被编译器隐式调用. 例如, 通过传值的方式传递对象....如果某区段没内容, 可以不声明....译者 (YuleFox) 笔记
不在构造函数中做太多逻辑相关的初始化;
编译器提供的默认构造函数不会对变量进行初始化, 如果定义了其他构造函数, 编译器不再提供, 需要编码者自行提供默认构造函数;
为避免隐式转换