原始类型在C ++中也有构造函数吗?

时间:2014-07-21 14:47:43

标签: c++ constructor primitive-types built-in-types

我读过Bjarne Stroustrup博士的书“C ++编程语言”第3版内置类型在第10.4.2节中也有C ++中的构造函数。

但是接下来的链接说POD类型不能有构造函数:

http://www.parashift.com/c++-faq-lite/pod-types.html

哪个是真的?原始类型在C ++中也有构造函数吗?

1 个答案:

答案 0 :(得分:8)

Bjarne意味着您可以编写int(56)甚至int()来构造整数。链接的含义是,如果没有声明构造函数, struct / class 只是一个POD。所以Bjarne讨论了原始的非结构类型和关于结构/类的链接讨论,因此两个源可以共存而不会相互矛盾。

以下是链接定义的一部分:

  

POD类型的非静态数据成员必须是公共的,并且可以是任何这些类型

当然,这只适用于结构。 int没有“数据成员”。因此,尽管链接从未直接提及,但它仅涉及结构和类。