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 nichts 🙂

    Grisu


Anmelden zum Antworten