C++中默认构造函数中数据成员的初始化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++中默认构造函数中数据成员的初始化
构造函数的任务是初始化数据成员的,在类中,如果没有显⽰定义任何构造函数,编译器将为我们创建⼀个构造函数,称为合成的默认构造函数,合成的默认构造函数使⽤与变量初始化相同的规则来初始化成员。

即当类中的数据成员没有在构造函数中显⽰初始化,将执⾏默认初始化:
1.对于内置类型(如int,double,char,bool等)和复合类型(数组,指针),定义任何函数体之外的内置类型或复合类型变量将被初始化
0,对于函数体内的内置类型的对象,若没有初始化,其值是未定义的。

2.具有类类型的成员通过运⾏各⾃的默认构造函数来进⾏初始化。

1 #include <iostream>
2 #include <cstdlib>
3 #include <string>
4
5using namespace std;
6
7class test{
8public:
9bool a;
10int b;
11float c;
12string s;
13int *d;
14int e[3];
15 };
16 test global_a; //定义在函数之外
17int main()
18 {
19 test local_a; //定义在函数之内
20 system("pause");
21return0;
22 }
如上可以,定义在函数体之内的内置类型和复合类型,其值均是未定义的,随机的,⽽对于类类型string,⾃动执⾏其构造函数,初始化为空。

相关文档
最新文档