Klasse und new/delete
-
Ich habe eine wahrscheinlich eher selten vorkommende Frage, zumindest habe ich bisher nichts zu diesem Thema gefunden.
Erstmal Vorweg eine Klasse:
class foobar{ int a; int b; std::string *s; public: foobar(){s = new std::string();} ~foobar(){delete s;} };Wenn ich nun mit
foobar *fb = new foobar();eine Instanz erzeuge, wo liegen dann die Daten?
Landet nur der Zeiger fb auf dem Heap, sowie der string s? Oder landet durch das mit new erzeugen der foobar Klasse auch a und b auf dem Heap? Wohl eher nicht, oder?

-
Alles auf dem Heap, außer der Zeiger fb.
Gruß
-
Danke dir - damit hätte ich ja jetzt nicht gerechnet.

Hast Du einen Link wo man das nachlesen kann? Im dem Buch von b. Stroustrup finde ich dazu leider nichts.
-
Was gibts da nachzulesen? Alles was mit new erzeugt wird liegt auf dem Heap.
Gruß
-
In ANSI C machst nen malloc auf nen Bereich der gross genug ist die beiden ints und den Zeiger zu halten (also Heap), in C++ passiert nicht viel anderes...