类的成员变量有默认值,但***局部变量没有默认值***,因此在使用局部变量之前,必须保证局部变量有具体的值。例:
class InitError{
int x=10,y; //y的默认值是0
void f(){
int m; //m没有默认值,但编译无错误
x=y+m; //无法通过编译,因为在使用m之前未指定m的值
}
}
无法通过编译,原因是InitError类中的方法在使用局部变量m之前,没有为局部变量m指定一个值。