一个类中申明的实例成员即使是在该类的内部被自己申明的方法调用也是需要先实例化才可以调用的。
那为什么在一个方法内部申明的局部实例变量却不需要先实例在调用呢。这好像有点违反规则。尽管问题看上去显而易见,但是仔细想想,谁能给出一个相对合理的解释呢(要有说服力,不要就事论事)
对 爱仙剑的小子的补充
void print()
{
int i = 10;
cout<<i;
}
是绝对可以的,实例成员是指申明是不带static的,静态成员是指申明时带static的。很明显,上面那个实例成员i,是不必通过包含它的类的实例对象来调用的。
突然发现还有一个例子:
class Test
{
int x;
static y;
void F()
{
x = 1; //实例方法内可以直接引用实例成员,而不必通过(new Test()).x
y = 1; //实例方法内也可以直接引用静态成员
}
}