in constructor initializer list ein array definieren



  • folgendes problem:

    struct zhamilton{
    int qb[2];
    double fak;
    zhamilton( int qb1, int qb2, double f):qb[0](qb1), qb[1](qb2), fak(f) {}
    };

    diese initializer list funktioniert nicht. wie mach ich's aber richtig ?
    so :

    struct zhamilton{
    int qb[2];
    double fak;
    zhamilton( int qb1, int qb2, double f):qb({qb1,qb2}), fak(f) {}
    };

    gehts auch nicht.

    hat jemand ne idee ?



  • hi

    also afaik kannst du das nur so machen:

    struct zhamilton{
    int qb[2];
    double fak;
    zhamilton(int qb1,int qb2,double f):fak(f){qb[0] = qb1; qb[1] = qb2;}
    };
    

    aber das kann sein das ich mich da irre!

    MfG
    eViLiSSiMo

    PS: BENUTZE CODE TAGS!



  • Tja danke erstmal.
    das mit den Codetags wusste ich nicht.

    Klar kann ichs so machen wie du gemeint hasst, allerdings ist int qb[2] dann nicht mehr in der initializer list initialisiert sondern im code teil.

    ich wuerde gerne wissen, wie mann das in der initializer list macht.



  • Auch wenn VC6++ nicht gerade für Standardkonformität berühmt ist - er liefert folgende Fehlermeldung:

    Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
    C:\Project\Test\main.cpp(9) : Siehe Deklaration von 'qb'
    Fehler beim Ausführen von cl.exe.

    Vielleicht hat er ja diesmal Recht damit?



  • ich wuerde gerne wissen, wie mann das in der initializer list macht.

    Gar nicht. Arrays können nicht in der Initialisierungsliste initialisiert werden.


Anmelden zum Antworten