- 初始化:
当对象在创建时获得了一个特定的值,我们说这个对象被初始化(initialized)了。用于初始化对象的值可以是任意复杂的表达式。当一次定义了两个或多个对象时,对象的名字随着定义也就马上可以被使用了。因此,在同一条定义语句中,可以用先定义的变量值去初始化后定义的其他变量;
//正确:price先被初始化,随后别用于初始化discount
double price=100.33,discount=price*0.23;
//正确:调用函数applyDiscount,然后用函数的返回值初始化salePrice
double salePrice=applyDiscount(price,discount);
在C++中,初始化是一个异常复杂的 问题,很多人对于用=来初始化对象的方式倍感困惑,这种方式容易让人认为初始化是赋值的一种。事实上在C++中,初始化和赋值室外安全不同的两种操作。然而在很多编程语言中 二者的区别几乎可以忽略不计,即使在C++中有事这种区别也无关紧要,所以容易把二者混为一谈。
其实初始化并不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,以一个新值来代替。
- 列表初始化:
C++中定义的几种初始化的形式
int units_sold=0;
int units_sold={0};
int units_sold{0};
int units_sold(0);
其中,用花括号来初始化变量的形式被称为列表初始化(list initialization)。
当用于内置类型的变量时,列表初始化的初始值存在丢失信息的风险,编译器将会报错;
未初始化的额变量 含有一个不确定的值,使用未初始化的变量的值时一种错误的编程行为并且很难调试。建议初始化每一个内置类型的变量。虽然并非必须这么做,但如果我们不能确保初始化后程序安全,那这么做不失为一种简单可靠的方法。
一个初识C++的小白