为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
临摹微笑 2019-08-13 15:07:03
内置类型有默认构造函数吗看完这文章我做了一个点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中有缺陷的文本,这是他的答复我认为你混淆了“实际的构造函数调用”与概念上有一个构造函数。 内置类型被认为具有构造函数(标准用于描述其行为的任何单词)。
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

构造函数是一个成员函数(构造函数在C ++标准的第12节中完全指定,它涵盖了构造函数和析构函数之类的特殊成员函数)。

只能为类类型定义成员函数(C ++ 03 9.3 / 1表示“在类的定义中声明的函数,不包括用朋友说明符声明的函数,称为该类的成员函数”)。

因此,非类类型(包括基本类型,数组类型,引用类型,指针类型和枚举类型)没有构造函数。

我没有“C ++编程语言”的副本来读取“内置类型也有默认构造函数”的引用的上下文,但我猜想Stroustrup要么使用“构造函数”这个术语,要么是松散的,非 - 技术意义,或术语的含义或标准中使用的方式在书籍出版和语言标准化之间发生了变化。我猜这个前者比后者更有可能。


查看完整回答
反对 回复 2019-08-13
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

正如其他人所指出的那样,该标准在少数情况下与TC ++ PL相矛盾,通常与术语相关。Bjarne Stroustrup亲自总结了这一情况:

(...) 但是,[TC ++ PL]不是参考手册或标准文本。如果您需要100%准确和完整的信息,则必须参考ISO C ++标准的文本。 (......)


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 692 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信