Methoden auf NULL Pointer aufrufen erlaubt?
-
Wie problematisch ist es eine (nicht virtuelle!)Methode auf einem Null Pointer aufzurufen?
So lange nicht lesend/schreibend auf Attribute des Objektes zugegriffen wird, gibt es ja keine Komplikationen.#include <iostream> using namespace std; class Foo { public: void func(); }; void Foo::func() { cout << "Kein Problem" << endl; } int main() { Foo* f = NULL; f->func(); }
-
Egal, was dein Compiler nun tatsächlich macht - du brauchst ein gültiges Objekt, um dessen Methoden aufrufen zu können. Alles andere führt zu undefiniertem Verhalten (eventuell geht's, aber ich würde mich nicht darauf verlassen).
(PS: Wenn du tatsächlich eine Methode ohne Objektzugriff verwenden willst, mach' sie static)