在c++中基本类型也有构造函数吗?

Do primitive types have also constructors in C++?

本文关键字:构造函数 类型 c++      更新时间:2023-10-16

我在Dr. Bjarne Stroustrup的书《c++编程语言》第三版中读到,在c++的10.4.2节中,内建类型也有构造函数。

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

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

哪个是正确的?原始类型在c++中也有构造函数吗?

Bjarne的意思是你可以写int(56)甚至int()来构造一个整数。这些链接的意思是,如果结构/类没有声明构造函数,那么它只是一个POD。所以Bjarne说的是基本的非结构类型,而链接说的是结构/类,所以这两个来源可以共存,而不会相互矛盾。

下面是来自链接的部分定义:

POD类型的非静态数据成员必须是公共的,并且可以是下列任何一种类型

当然,这只适用于结构体。int中没有"数据成员"。因此,尽管链接从未直接提到它,但它只引用了结构体和类。
相关文章: