当对象在创建时获得了一个特定的值,我们说这个对象被初始化了。
c++语言用等号=来初始化,很多人会将其误认为是赋值,其实两者是完全不同的。这个概念非常重要。
-
初始化的不同方式
- 默认初始化
默认初始化包括直接初始化和不被初始化。
直接初始化时,变量会被赋予默认值。默认值到底是什么由变量类型决定。如果是类的话,类可以掌控自己的初始化。
一个不被初始化的变量的值是未定义的。
- 列表初始化
即为使用花括号的初始化。
若使用列表初始化时有丢失信息的风险,编译器将报错。
long double ld = 3.1415926; itn a{ld}, b = {ld}; //正确 int c(ld), d = ld; // 错误
- 拷贝初始化
用等号的初始化叫做拷贝初始化。
例如说:string s5 = "hiya";,hiya\n这个字面值的\n被省略掉了,剩下的赋值给s5。
- 直接初始化
用小括号的初始方法。
时间: 2024-08-07 16:45:03