内置数据类型与C++中的用户定义数据类型

jsp*_*p99 2 c++ constructor

构造器从灰尘中构建对象.

这是我最近多次报道过的一个声明.

在初始化内置数据类型变量时,该变量也必须"由灰尘构建".那么,是否还有内置类型的构造函数?

此外,编译器如何以不同方式处理BUILT IN DATATYPE和USER DEFINED CLASS,同时为每个创建实例?我的意思是关于构造函数,析构函数等的细节.

关于堆栈溢出的这个查询是关于相同的,它有一些非常有趣的细节,最有趣的是Bjarne所说的......!

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

In *_*ico 5

简单地说,根据C++标准:

12.1构造函数[class.ctor]

2.构造函数是用来初始化它的类的对象...

所以没有,内置数据类型(假设您正在讨论ints和floats之类的东西)没有构造函数,因为它们不是类类型.类类型是这样指定的:

9个班级[班级]

1.班级是一种类型.它的名称在其范围内成为类名(9.1).

        class-name:
                identifier
                template-id

类说明符详细类型说明符(7.1.5.3)用于创建类名.类的对象由(可能为空的)成员序列和基类对象组成.

        class-specifier:
                class-head { member-specification (opt) }

        class-head:
                class-key identifieropt base-clauseopt
                class-key nested-name-specifier identifier base-clauseopt
                class-key nested-name-specifieropt template-id base-clauseopt

        class-key:
                class
                struct
                union

由于内置类型不是这样声明的,因此它们不能是类类型.

那么如何创建内置类型的实例呢?将内置实例和类实例引入存在的一般过程称为初始化,在C++标准(8.5)中有一个巨大的8页部分,其中列出了令人难以忍受的细节.以下是您可以在8.5节中找到的一些规则.