Klassen erstellen
-
Hey leute ich lerne zurzeit C++ und stelle mir schon öfter die frage wo hier der unterschied besteht:
klasse nameund
new Klasse;ich habe auch gelesen das soetwas möglich ist was mich total verrückt gemacht hat:
klasse e e = new klasse;Hier verstehe ich nicht den sinn wenn man schon vorher die variable schließlich deklariert hat
Freue mich auf jede Antwort
-
In C++ gibt es 3 verschiedene Speicherbereiche in denen du dein Objekt ablegen kannst. Da gibt es den automatischen Speicher (Stack), da gibt es den dynamischen Speicher (Heap) und da gibt es den statischen Speicher (für globale Objekte und statische Objekte).
Klasse name ==> Stack
new Klasse ==> Heap ==> Das letzte ist ja dasselbe, nur dass du hierbei die Adresse, die dir new zurückgibt, in einem abspeicherst (du hast den Stern * vergesssen).
-
out schrieb:
in einem abspeicherst (du hast den Stern * vergesssen).
in einem Zeiger abspeicherst.
-
Sebi1997 schrieb:
ich habe auch gelesen das soetwas möglich ist was mich total verrückt gemacht hat:
klasse e e = new klasse;Hier verstehe ich nicht den sinn wenn man schon vorher die variable schließlich deklariert hatt
Das geht tatsächlich nicht. In kompilierfähigem Code (ich schreibe bewusst nicht "in gutem Code") ist das so:
klasse* e; // Pointer! e = new klasse;In gutem Code sollte "new" (fast) nur in Verbindung mit Smart Pointern verwendet werden.