c++ - 在哪些情况下根本没有构造函数,甚至没有默认构造函数?

标签 c++ constructor default-constructor

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/

相关文章:

c++ - 为什么不能在外部 namespace 中定义完全限定的函数?我可以知道标准是怎么说的吗?

c++ - 二维网格中的不同随机点

C++ 错误 : "Multiple markers at this time: no matching function for call to" in constructor

C++ constexpr 继承构造函数

c# - 无法获取默认构造函数

c++ - 这个模板语法可以改进吗?

C++ 堆栈跟踪问题

c++ - 重载构造函数中的代码重复

java - 为什么将 HashSet<>(0) 初始化为零?

boost - init boost::optional 的不可复制对象