Dynamisches Array als Eigenschaft einer Klasse
-
Darf ich nicht.

Achja, es dürfte ruhig statisch sein, nur ist der Stack zu klein...
-
Aber du kannst doch den Konstruktor einer eingeschachtelten Klasse
im Konstruktor der Oberklasse aufrufen.
-
Achja, es dürfte ruhig statisch sein, nur ist der Stack zu klein...
class foo{ int *m_iData; size_t m_iSize; foo(size_t iSize) : m_iData(new int[iSize]),m_iSize(iSize){} ~foo() {delete m_iData; } int& operator[](size_t iIndex){ assert((iIndex<iSize || iIndex >= 0) ; return m_iData[iIndex]; } }; foo A(100); A[5]=6; int h= A[5];
-
BorisDieKlinge schrieb:
~foo() {delete m_iData; }~foo() {delete[] m_iData; }
-
assert((iIndex<iSize || iIndex >= 0) ;Warum darf der Index nicht 0 sein? Kleiner geht ja sowieso nicht.
-
Braunstein schrieb:
Warum darf der Index nicht 0 sein?
Darf er doch.
-
Stimmt.

Der 0-Vergleich ist also komplett unsinnig.
-
Danke für eure Hilfe!
Mit dem default-Konstruktor hat es geklappt! Hab dort einfach statisch die Array-Größe eingetragen.
Gruß
-
Um nicht extra einen neuen Thread aufzumachen,
Kann man mehrdimensionale Arrays auch mit delete löschen?
also mit delete[][] ?
-
delete[][] gibt es nicht.
siehe FAQ
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39489.html