在c++中基本类型也有构造函数吗?
Do primitive types have also constructors in C++?
我在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
中没有"数据成员"。因此,尽管链接从未直接提到它,但它只引用了结构体和类。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 构造函数正在调用一个使用当前类类型的函数
- 具有默认模板类型的默认构造函数的类型推导
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 在 c++ 中的模板实例化中使用带有构造函数的类作为类型参数
- 不命名构造函数和析构函数上的类型错误
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- 创建类类型的动态分配数组,其中类不得具有默认构造函数
- 有没有办法避免为 std::variant 类成员中的所有类型编写构造函数?
- 在 C++17 中调用具有不同参数类型的构造函数
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 无法推断类中的类型,构造函数采用 std::array
- 当类型适当的构造函数可用时,为什么一个编译器尝试使用已删除的副本构造函数
- 如何在参数中定义隐式类型转换的构造函数?
- C++ - 打印地图<结构,结构,构造函数>类型
- 继承构造函数+非默认构造函数类型的类内初始化失败
- c++ python构造函数类型错误(可能的命名空间问题)
- 具有构造函数类型转换和转换操作符的转换序列