class Foo{
private:
int i;
public:
Foo(int a)
{
i = a;
}
int getI() {return i;}
};
int main()
{
Foo* f;
if(true)
{
Foo g(1);
f = &g;
}
cout << f->getI() << endl;
return 0;
}
在上面的代码中, Foo 类的 g 对象一旦退出 if 子句,就会超出范围。那么当cout语句执行时,会打印1吗?