Möglicher Duplikat:
Was passiert, wenn ich eine Member-Funktion auf einen NULL-Objektzeiger aufrufe?
class A {
public:
void foo() { cout << "Work";}
void bar() { this->foo(); }//neue Bearbeitung, funktioniert auch!
};
class B {
private:
A *a; //nie initialisiert
public:
A& getA() {
return *a;
}
};
void SomeFunction() {
B *b = new B();
B& bRef = *b;
bRef.getA().bar();//bearbeitet
delete b;
}
Ich habe SomeFunction() aufgerufen, ohne "a" zu initialisieren, und es druckt trotzdem korrekt "Work" aus. Ich verstehe nicht, warum, es hätte mit einem Segmentation-Fehler aussteigen sollen!