Allokieren und gleichzeitige Übergabe im Konstruktor einer Klasse
-
Servus Folks,
ich bin leider noch nicht in die Uniefen des C++ versunken, daß ich nun wüßte wie es geht... Folgendes Beispiel:
class BigFoo { public: BigFoo(); ~BigFoo(); class LittleFoo *GetMyFoo(int iQuantity); }; class LittleFoo *BigFoo::GetMyFoo(int iQuantity); { // Hier würde ich nun gerne // von LittleFoo ein Array erstellen // welches gleichzeitig durch // seinen Konstruktor die Quantity // mitgeteilt bekommt. // // irgendwie sowas ->> LittleFoo MyFoo(_quantity=10_) = new LittleFoo[100]; } class LittleFoo { public: LittleFoo(int iQuantity); ~LittleFoo(); double *dArray; }; LittleFoo::LittleFoo(int iQuantity) { dArray=(double *)calloc(iQuantity,sizeof(double)); } LittleFoo:~LittleFoo() { free(dArray); }
Geht sowas ?
Danke und Gruß Winn
-
placement new ginge, das würde dann in etwa so aussehen(keinerlei garantie für richtigkeit/sinn des codes,bin müde und will mal endlich ne gute verwendung für placement new finden^^)
class LittleFoo *BigFoo::GetMyFoo(int iQuantity) { LittleFoo* newFoo=(LittleFoo*)new char[sizeof(LittleFoo)*100];//platz für 100 LittleFoo reservieren for(LittleFoo* pos=newFoo;pos<pos+100;++pos){//jede "Zelle" durchgehen new(pos) LittleFoo(IQuantity);//LittleFoo in der zelle erstellen } }