在全局域中声明的变量会自动初始化为0,如:
double salary;
int day;
如果变量是在局部域中定义的,或是通过new表达式动态分配的,
则系统不会向它提供初始值0,这些对象被认为是未初始化,
而类对象会通过缺省构造函数自动初始化。如
int main(int argc,char *argv[])
{
int ival;//未初始化的变量
string m_name; //通过缺省构造函数自动初始化
//...
return 0;
}
C++支持两种形式的初始化:
1:使用赋值操作符的显示语法形式。如:int ival=1024;
2: 隐式形式,初始值被放在括号中。如:int ival=(1024);
使用未初始化对象是个常见错误,所以,建议对每个被定义的对象
提供一个正确的初始值。如:
int main()
{
int stat=0;
double salary=0.0;
bool temp=false;
employee *p=NULL;
//
}
数组的初始化:
数组可以显示地用一组数初始化,如:
const int aray_size=3;
int ia[aray_size]={0,1,2};
如果指定的维数大于给定的元素的个数,没有被显示初始化的元素
将置为0。也可以不指定维数值,如: int ia[]={0,1,2};