变量定义指定了变量的类型和标识符,也可以为对象提供初始值,定义时指定了初始值的对象被称为是已初始化的,C++支持两种初始化变量的形式:复制初始化、直接初始化:
int a(1024); // 直接初始化
int a=1024; //复制初始化
注意:初始化不是赋值(初始化指创建变量并给他赋初始值,而赋值则是擦出对象的当前值并用新值来替代),在C++中这是两种不同的操作,这个概念特别容易误导人;
另外:当初始化类类型对象时,复制初始化和直接初始化之间的关系是很微妙的(之后再说)。
附:
1、内置类型变量的初始化:在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量不进行自动初始化。所以,建议每个内置类型的对象都要初始化,虽然这样做未必都是有必要的,但会更加容易和安全;
2、类类型变量的初始化:每个类都定义了该类型的对象可以怎么初始化。类通过定义一个或者多个构造函数来控制类对象的初始化,如果定义某个类的变量时没有提供初始化,这个类也可以定义初始化时的操作,它是通过定义一个特殊的构造函数即默认构造函数来实现的。大多数类都提供了默认构造函数,但还是有些类没有提供默认构造函数,那么就需要我们提供显式的初始化,没有初始值是根本不可能定义这种类型的变量的。