C++中对象的初始化
未完待续。。。
1、对象:一块能存储数据并且具有某种类型的内存空间。并不严格区分是内置类型还是类,也不区分是否命名或者只读。
2、初始化:当对象在创建时获得了一个特定的值,就说明这个对象被初始化。例如:如下四条语句都是定义一个test_code对象并初始化为0。
1 int test_code = 0; 2 int test_code = {0}; 3 int test_code{0}; 4 int test_code(0);
与赋值的区别:初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是将当前值擦除以一个新的值替代。
3、拷贝初始化:使用赋值号(=)的初始化形式,新创建的对象是初始值的一个副本。
4、直接初始化:不使用赋值号(=)的初始化形式。
5、列表初始化:利用花括号把一个或多个初始值放在一起的初始化形式
(1).当用于内置类型的变量时,如果用列表初始化且初始值存在丢失信息的风险,则编译器报错。
6、默认初始化:当对象未被显示的赋予初始值时执行的初始化行为。
(1).类类型的初始化由类本身负责
(2).全局作用域的内置类型对象初始化为0,局部作用域的对象不被初始化,其值是未定义的。
7、值初始化:是一种初始化过程。内置类型初始化为0,类类型由类的默认构造函数初始化,只有当类包含默认构造函数时,该类的对象才会被值初始化。对于容器的初始化来说,如果只说明了容器的大小而没有指定初始值,就会执行值初始化。此时编译器会生成一个值,而容器的元素被初始化该值。
参考:《C++ primer》第五版 中文版
浙公网安备 33010602011771号