Dynamisches Array anlegen
-
Hi
wie lege ich in C++ ein dynamisches Array an ?
Ich habe eine Klasse Bitmap (aus GDI+) und definiere mir einen Zeiger dort drauf:
Bitmap *pBmp;
jetzt will ich zur Laufzeit Objekte davon erstellen z.B.
pBmp = new Bitmap();
da kommt immer das es keinen Standartkonstruktor gibt.
pBmp = new Bitmap(0, 0);
klappt leider auch nicht. Von einem Array ganz zu schweigen :
pBmp = new Bitmap[5];
wo liegt der Fehler ? Oder lassen sich Klassen nicht so einfach dynamisch
erzeugen ?!Würde mich riesig freuen wenn jemand das Problem lösen oder helfen kann.
-
Es liegt nicht an deiner Speicherallokierung, sondern, wie die Meldung schon sagt, an den Konstruktoren von Bitmap. Ich kenn sie leider nicht, aber anscheinend sind sie nicht kompatibel zu dem, was du da gemacht hast.
-
es gibt 12 überladene Konstruktoren für Bitmap.
der einfachste wär (0, 0). Oder hat vielleicht jemand ein Beispiel für ein dynamisches Array einer allgemeinen Klasse die aber kein Standartkonstruktor hat ?
-
Habe das Problem gelöst mithilfe der ATL vector Klasse.
Wer Interesse hat schaut hier in meinem anderen Thread:
-
kein wunder das
bitmap = new Bitmap[5];
nicht funkt. dazu muss die klasse bitmap einen standart ctor haben.
es werden 5 statische bitmaps erzeugt, die alle im speicher hintereinander liegen. new will für jeden dieser bitmaps den standart ctor aufrufen, nur gibts den net. also gibt compiler-fehler.
da gibts abhilfe, wenn du
Bitmap** bitmaps = new Bitmap[5];
schreibts.