CMyClass class= new CMyClass(dummy)[dummy2];
-
Hallo,
ich bin es schon wieder, ich bin vorhin auf ein Problem gestoßen, von dem ich eigentlich gedacht hätte, dass es kein Problem sei :-).ich wollte mit:
CMyClass class= new MyClass(dummy)[dummy2];
mehrere Instanzen einer Klasse erzeugen. Der Konstruktor bekommt dummy übergeben, aber das fuktioniert mit dem Konstruktor irgendwie nicht.
Die Fehlermeldung lautet : Fehlendes ';' vor '['Das hier funktioniert aber: CMyClass class= new MyClass(dummy);
Kann mir jemand das Problem erklären?
Grisu
-
Das Problem hatte ich auch schon.
Ein dynamisches Erzeugen mehrerer Objekte geht nur mit einem Standardkonstruktor.
Also das ist möglich: (hier werden Objekt mit der Anzahl dummy angelegt)CMyClass * pMyClass = new CMyClass[dummy];
Und das ist auch möglich: Hier wird ein einziges Objekt mit dem Parameter dummy erzeugt)
CMyClass * pMyClass = new CMyClass(dummy);
Kombination von beiden liess mein Compiler auch nicht zu, stand auch so in der Hilfe.
-
eine möglichkeit wäre std::vector oder ähnliche container - da kann man bei initialisieren auch einen anderen ctor als den default ctor angeben:
vector<Dummy> vec(100, Dummy(foo));
-
Hi, vielen Dank für die Antworten.
Ich habe mir eine zusätzliche init Routine geschrieben, das funktioniert auch.
Ist zwar auch nicht das schönste, aber besser als nichtsGrisu