Umfrage: Was passiert bei diesem code?
-
Umgebung: Visual Studio 2005
Sprache: C++int main() { int x = 5; int y = 4; Rechnen *Rot = new Rechnen; Rechnen Blau; Rot->MeineFarbe("Rot"); Blau.MeineFarbe("Blau"); std::cout << Rot->MeineFarbe() << std::endl; // Rot std::cout << Blau.MeineFarbe() << std::endl; // Blau // --------------------------------- // Um diese Zeilen geht es: delete Rot; Rot = NULL; std::cout << Rot->Addieren(x, y) << std::endl; // Rot std::cout << Blau.Addieren(x, y) << std::endl; // Blau // // --------------------------------- getchar(); return 0; }
-
das programm stürzt ab
-
Undefiniert!
-
aufruf von ner Methode von "NULL" ist undefiniert?
-
Undefiniert, aber ob es abstürzt hängt auf realen Compilern davon ab ob 1) die aufgerufene Methode virtuell ist und 2) auf Membervariablen zugreift.
-
Bashar hat recht ^^
ich fands lustig als ich vor einem freund gesagt hab:
"so .. jetz zeig ich dir mal nen error.. blah"..
und auf einmal läuft das programm durch und gibt alles korrekt aus

-
Tjo jag es durch GCC und evtl. führt es dort schon zu nem absturz ... Das ist einfach im Standard nicht definiert. (std::null_ptr wird abhilfe schaffen!)
-
Hatte nicht Mr. N einen Beweis gepostet, dass Java schlecht ist, weil String vergleich mit == nicht geht. Was ist dann C++?
-
Was ist dann C++?
C++ ist eine Programmiersprache!
-
(D)Evil schrieb:
Tjo jag es durch GCC und evtl. führt es dort schon zu nem absturz ... Das ist einfach im Standard nicht definiert. (std::null_ptr wird abhilfe schaffen!)
der heißt nur
nullptr
abhilfe?
-
Mr.XXL schrieb:
Hatte nicht Mr. N einen Beweis gepostet, dass Java schlecht ist, weil String vergleich mit == nicht geht.
dass das nicht geht, hat nen ganz einfachen grund: wenn strings mit == vergleichbar wären, wie willst du in java dann auf identität prüfen?