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++에서 오브젝트 범위 외부를 가리키는 이유
당신의 코에서 날아 다니는 악마 - 또는 정의되지 않은 행동. –