在this book我目前正在阅读我遇到过这个:
A class doesn't need a constructor. A default constructor is not needed if the object doesn't need initialization.
我从上面推断编译器在某些情况下不会为类/结构生成默认构造函数是否正确?如果是,这些情况是什么?我会冒险说 POD 可能是其中之一。还有其他的吗?
编辑:我更改了标题,因为原始标题给出的意思是我询问何时未定义默认构造函数,而不是询问类何时根本没有构造函数。
最佳答案
A class doesn't need a constructor. A default constructor is not needed if the object doesn't need initialization.
我觉得作者说的是这种情况:
some_type some_function () {
POD_type this_is_intentionally_uninitialized;
...
}
在某些情况下,不会调用构造函数,句号。一旦你编写了一个构造函数,你就没有 POD 类,所以现在将调用构造函数。
让包含随机、未初始化数据的对象运行是好事还是坏事完全是另一个问题。
关于c++ - 在哪些情况下根本没有构造函数,甚至没有默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131983/