2d arrays von klassen ohne standard constructor
-
So langsam komme ich mir richtig blöd vor. Seit Jahren Programmiere ich mit c++ und scheitere gerade bei eigentlich ganz einfachen sachen.
Wie zum geier kann ich ein dynamisches 2d array von elementen einer klasse aufbauen wobei es zu der klasse aber keinen standard constructor gibt sondern nur einen der parameter hat. Kurzum ich muss jedes element einzeln anlegen. Wie geht das?
-
new MeineKlasse[c](der_eine_parameter);
-
Fedaykin schrieb:
So langsam komme ich mir richtig blöd vor. Seit Jahren Programmiere ich mit c++ und scheitere gerade bei eigentlich ganz einfachen sachen.
Wie zum geier kann ich ein dynamisches 2d array von elementen einer klasse aufbauen wobei es zu der klasse aber keinen standard constructor gibt sondern nur einen der parameter hat. Kurzum ich muss jedes element einzeln anlegen. Wie geht das?
Es geht nicht. Man kann mit Defaultargumenten tricksen, aber das ist im Allgemeinen keine akzeptable Lösung. Damit verbleibt nur, rohen Speicher anzufordern und dann manuell zu initialisieren - was hinsichtlich Exceptionsicherheit nicht ganz einfach ist. Die beste und einfachste Lösung wird in aller Regel ein std::vector sein, das setzt aber Kopierbarkeit voraus.
Boosts in-place-factory kann helfen, oder auch der raw_storage_iterator aus <memory>, wenn du keinen Container verwenden willst.