可能重複:
What will happen when I call a member function on a NULL object pointer?這個C++代碼是如何工作的?未初始化的指針
class A {
public:
void foo() { cout << "Work";}
void bar() { this->foo(); }//new edit, works too!
};
class B {
private:
A *a; //never initialized
public:
A& getA() {
return *a;
}
};
void SomeFunction() {
B *b = new B();
B& bRef = *b;
bRef.getA().bar();//edited
delete b;
}
我叫SomeFunction()沒有初始化 「一」,它仍然打印 「工作」 正常。我不明白爲什麼,它應該用分段錯誤來解決問題!
這是未定義行爲的美(閱讀:可怕部分) –
我發佈了這個問題的答案。然後注意到它的錯誤!然而當我運行這個程序時,它打印出正確的答案。擋了我發佈了一個問題。 –