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嗎?指向對象的指針指向C++對象範圍之外
惡魔飛出你的鼻子 - 或者,未定義的行爲。 –