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;
}
「a」を初期化せずにSomeFunction()を呼び出しましたが、それでも「Work」は正しく出力されます。理由がわかりません。セグメンテーション違反で救済されるべきでした。