Wie initialisiere ich ein konstantes Klassen-Array?



  • Servus Zusammen!
    Eine Frage, die mich heute schon den ganzen Tag beschäftigt: wie initalisiere ich ein konstantes Klassen-Array? (Geht das im Ctor mit einem speziellen "Array"-initialisierer?)
    Habe schon alles mögliche ausprobiert, leider ohne Effekt.

    //Edit: Was ich noch anmerken wollte:
    Geht das ohne eine extra dafür konzipierte Klasse? (Nicht das gleich einer kommt und sagt: "nimm std::vector o. schreib dir eine Klasse dafür o.ä.")
    Warum? Reine Neugier.

    Caipi



  • class test
    {
    private:
    const int array[3];
    public:
    test(int a,int b,int c):array({a,b,c}){};//?
    test(int a,int b,int c):array={a,b,c}{};//?
    };
    

    Gute Frage...



  • Geht nicht. Steht im Stroustrup.

    Man kann nur einzelne konstante Objekte initialisieren.

    Leider sagt Stroustrup selber, dass er einige Dinge nicht mehr in die Sprache einbauen konnte, da die Sprache jetzt dem C++-Normungsgremium unterliegt.

    Andere Wuenche waeren z.B. valof-Bloecke wie in BCPL, mit denen man lokale Funktionen realisieren koennte usw.



  • @power off
    Das ist ja schade.
    Trotzdem danke für deine Antwort! Jetzt weiss ich wenigstens, dass sowas nicht geht.

    Caipi


Anmelden zum Antworten