Instanz einer Klasse auf dem Heap
-
Ich habe da mal eine kleine Frage zu Instanzen einer Klasse auf dem Heap.
Ein Beispiel wird wohl das passenste sein, von daher:
class foo { public: foo(); ~foo(); private: int m_irgendwas[30][20]; };Ich lasse die Implentierungen mal weg, aber nun zu meiner Frage:
Wenn ich diese Klasse z.b. mit
foo *irgendwas = new foo();auf dem Heap erstelle, liegt dann das Mehrdimensionale Array auch auf dem Heap?
Gruß
The-Kenny
-
Ja
-
Wenn Du davon sprichst, eine Instanz einer Klasse auf dem Heap zu haben, so meinst Du eigentlich, daß die Daten der Instanz auf dem Heap liegen. Das ist ja das einzige, was wirklich den Speicherbedarf eines Objekts ausmacht. Die Funktionen sind einfach Code, und stehen einmal an zentraler Stelle im Programmspeicher.
Das Array in Deinem Beispiel ist ja gerade der Speicherbedarf der Instanz, folglich liegt es in diesem Fall tatsächlich auf dem Heap.
-
Marc++us schrieb:
Wenn Du davon sprichst, eine Instanz einer Klasse auf dem Heap zu haben, so meinst Du eigentlich, daß die Daten der Instanz auf dem Heap liegen. Das ist ja das einzige, was wirklich den Speicherbedarf eines Objekts ausmacht. Die Funktionen sind einfach Code, und stehen einmal an zentraler Stelle im Programmspeicher.
Das Array in Deinem Beispiel ist ja gerade der Speicherbedarf der Instanz, folglich liegt es in diesem Fall tatsächlich auf dem Heap.
Hm, wenn man das bedenkt, ist es logisch *g*
Ich sollte wohl öfter so denken, aber damit ist das Thema erledigt, danke euch beiden.