Mehrdimensionales dynamisches Array in einer Klasse erstellen !
-
Hallo Zusammen
,ich möchte ein mehrdimensionales synamisches Array in einer Klasse erstellen.
Mit einen eindimensionalen habe ich die Sache so gelöst :class CTilgung { private: public: CTilgung() { double *d_arr_Erg = new double[]; } ~CTilgung() {} double dZinsen; double dRest; double dTtlg; double dSonderTlg; double dSonderZins; };Aber wie muss ich das mit einem mehrdimensionalen Array machen ???
Danke für eure Mühe

ShadowEater
-
double **pp= new double*[X]; for(int i=0; i< X ; i++ pp[i]= new double[Y];ungefähr so.......
-
Falls du es ausführlicher haben willst, wirf doch mal einen Blick in die FAQ (zum Thema "dynamische mehrdimensionale Arrays").
-
warum eigtl. nicht die STL verwenden?
#include <vector> std::vector<std::vector<double> > myarray;
-
weil ein vector kein array ist :p
-
Bau hierauf auf: http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.19
-
Hi,
ich hab mir die Faq angeguckt und verstehe die Pointer Variante ganz gut :Das müsste doch dann so lauten:
class CTilgung { private: public: double (*d_arr_Erg)[6]; CTilgung() { d_arr_Erg = new double[2][6]; } ~CTilgung() {} double dZinsen; double dRest; double dTtlg; double dSonderTlg; double dSonderZins; void test() { d_arr_Erg[0][0] = 42; } };Ich möchte aber nun d_arr_Erg als Rückgabe der Funktion Test, aber wie muss ich die um Gottswillen deklarieren ?
Die Main soll so aussehen :
CTilgung tilg; int main() { COUT << AUSGABE DES ÜBERGEBENEN ARRAYS d_arr_Erg; return 1; }Muss das Ausgabe Array auch auf den Hep ???
Danke
ShadowEater
-
Sorry,
ich weiss nicht wie der Thread zum 2. Mal geöffnet wurde, das war ein Versehen!!!!
Ich hab ja dann hierher gepostet siehe oben !ShadowEater
-
geht glaub ich gar nich.... höchsten einen pointer-pointer auf double zurückliefern... das problem ist allerding das man zwar das array auserhalb nutzen kann, aber die dimensionen nicht bekannt sind! wieso schreibst du nich eine funktion welche dir das array ausgibt void
print();welche du dann aufrufst.
oder du gibts immer nur einen wert zuzrück...
double Get(int X,intY);theortisch könnte du das 2 Dim Array auch als 1Dim Array verwalten.
//dimensionen int W= 6, H= 4; //erzeugen double *pA= new double[W*H]; //zugriff mit X,Y koordinaten double value= pA[X*W+Y]; //lesen pA[X*W+Y]= value;//scheibenwenn du das gesamte Arry zurückgeben willst, musst du auch die dimensionen als parameter mit zurückgeben.
-
Hi Boris :),
du hast recht, ich glaub ein mehrdimensionales dynamisches Array aus einer Klasse zurückzugeben geht leider wirklich nicht so wie ich das vor hatte (Pointer - Variante) schade eigentlich aber wenn dann nur irgendwie trickreich !!!
Ich mach das jetzt ganz einfach so dass ich mehrere eindimensionale Arrays zurückgeben lasse und die dann zu einer mehrdimensionalen tabelle zusammenbaue !Dnke für eure Mühe & Hilfe
ShadowEater
-
was gibts das denn? ist das eine art Matrix die du zurückgeben willst?
wieso machst du keine matrix klasse welceh das array enthält + dimensionen, und dann diese Matirx objekt zurückgibst?
grüße
-
Hi ;),
ja eine Ergebnismatrix in deren Spalten die Ergebnisse einzelner Rechenoperationen für versch. Werte eingetragen werden.
Deshalb kann ich auch je Formel ein eindimensionales dynamisches Array benutzen und in der main alles in ein 2 dimensionales dynamisches Array schreiben, das macht weder einen viel größeren Aufwand noch sonstige Probleme.
Ich wollte halt wissen wie das mit der Rückgabe eines mehrdim. dynamischen Arrays aussieht !
Aber wie Du schon gesagt hast glaub ich auch nicht dass das geht
!ShadowEater
