为什么Compiler-Emitted C++默认构造函数"不好"?

Meh*_*dad 0 c++ default-constructor

可能有人请解释一下何谓以下

如果类定义成员变量且没有其他构造函数,则必须定义默认构造函数.否则编译器会为你做这件事,非常糟糕.

他们所谓的"严重"是什么?

mkb*_*mkb 5

从该链接的扩展:

"这样做的原因是,如果你没有其他的构造,但没有定义默认构造函数,编译器会生成一个给你.这个编译器生成的构造函数不能合理地初始化的对象."


Cat*_*lus 5

如果没有提供ctor,可能会参考如何new Tnew T() 不同.