2.3.3定义基本对象
一、初始化:
初始化分为两种形式:
1、直接初始化 int A(5);将A初始化为5.
2、复制初始化int A=5; 将A初始化为5.
初始化与赋值的概念并非完全一致,初始化是指创建变量,并给它赋值,而赋值是指擦除变量当前值,赋予新值。
二、使用多个初始化式:
内置类型初始化:
提供一个值,将这个值复制到新定义的变量中。
对内置类型来说,复制初始化和直接初始化几乎没有区别。
类类型对象初始化:
类类型具有构造函数,能一次接收多个参数,一个类可以定义几个构造函数,但是要求参数的数目和类型不同(重载构造函数)。
三、初始化多个变量:
有多个变量时每个变量都有自己的初始化式,对象名字变为可见(这句话的意思是,变量经过初始化后,变量名可用。)可以作为值初始化后面的变量。
已初始化可以和未初始化变量一起定义。
可以用函数返回值初始化。
习题解答:
1、下面两个定义是否不同,有何不同?
int month = 9,day = 7;
int month = 09,day = 07;
如果上述定义有错应该怎样改正?
答:这两个定义不同,前者定义了两个int值分别初始化未9和7,而后者用八进制初始化,第一个变量却初始化为09,八进制只有0~7,应该为011.
2、假设calc是一个返回double对象的函数,下面那些是非法定义?改正所有的非法定义。
int car=1024,auto=2048;
int ival=ival;
std::cin>>int input_value;
double salary=wage=9999.99;
double calc=calc();
答:1、auto是关键字不能用于变量名。2、>>操作符右边不能有变量定义。3、同一定义语句中变量应该分开定义。4、该初始化无意义。