相关疑难解决方法(0)

内置类型有默认构造函数吗?

看完文章我做了一个点int ()产生0,因为临时int的值进行初始化而不是因为int()呼吁默认构造函数int.(根据我的理解,这篇文章有缺陷.)

我还说原始(内置)类型没有构造函数.原作者让我查看章节$ 10.4.2(TC++ PL)

内置类型也有默认构造函数(6.2.8美元)

但我仍然认为语句"C++允许甚至内置类型(原始类型)具有默认构造函数." 是有缺陷的(根据C++ 03).

我认为TC++ PL中的Bjarne将"构造函数如符号ie ()"与实际的构造函数调用混淆了.当Bjarne写这本书的时候没有引入价值初始化,对吧?那么根据C++ 98和C++ 03,TC++ PL中的文本是不正确的?

你们有什么感想?

编辑

我亲自(通过邮件)问Bjarne关于TC++ PL中有缺陷的文本,这是他的答复

我认为你混淆了"实际的构造函数调用"与概念上有一个构造函数. 内置类型被认为具有构造函数(标准用于描述其行为的任何单词).

c++ constructor value-initialization

43
推荐指数
3
解决办法
2万
查看次数

C++预处理器#define-ing a keyword.标准是否符合标准?

这个关于bool和1的问题的评论中帮助解决正在进行的辩论:

符合标准的C++预处理器是否允许#define用户重新定义语言关键字?如果是这样,符合标准的C++预处理器是否允许这样做?

如果C++程序重新定义了一个语言关键字,那么该程序本身是否符合标准?

c++ c-preprocessor

20
推荐指数
3
解决办法
4458
查看次数

当实际的原始类型构造函数被调用和使用时?

我知道已经问过类似的问题,但我的问题是不同的,所以请不要在完全阅读之前将其标记为重复或其他内容.

Bjarne Stroustrup在他的"C++编程语言"一书中说过

10.4.2内置类型也有默认构造函数

另请阅读同一本书第6.2.8节.

以下链接还表示内置类型在C++中具有默认构造函数.

  1. http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=15

  2. http://www.geeksforgeeks.org/c-default-constructor-built-in-types/

但是以下链接的答案表明内置类型没有构造函数.

另外,请阅读以下链接,这些链接说明int i=int();原因值初始化之类的语句基本上最终为零初始化.

以下是我有时问过的问题,即int a=int()在C++ 98中发生了什么,我得到了默认初始化的答案.

如果我没有错,那么在C++标准中没有提及或者C++标准没有说原始类型也有构造函数.那么,从Bjarne Stroustrup的书中,我可以说它在概念上是真的,他们有构造函数,但实际上没有像内置类型的构造函数这样的东西吗?他书中的文字真的有缺陷吗?或者,根据Bjarne Stroustrup的书,当它们被实际调用和使用时,它是否真的如此?

c++ constructor primitive-types built-in-types

7
推荐指数
0
解决办法
101
查看次数