我读过Bjarne Stroustrup博士的书“C ++编程语言”第3版内置类型在第10.4.2节中也有C ++中的构造函数。
但是接下来的链接说POD类型不能有构造函数:
http://www.parashift.com/c++-faq-lite/pod-types.html
哪个是真的?原始类型在C ++中也有构造函数吗?
答案 0 :(得分:8)
Bjarne意味着您可以编写int(56)
甚至int()
来构造整数。链接的含义是,如果没有声明构造函数, struct / class 只是一个POD。所以Bjarne讨论了原始的非结构类型和关于结构/类的链接讨论,因此两个源可以共存而不会相互矛盾。
以下是链接定义的一部分:
POD类型的非静态数据成员必须是公共的,并且可以是任何这些类型
当然,这只适用于结构。 int
没有“数据成员”。因此,尽管链接从未直接提及,但它仅涉及结构和类。