Fehler bei Member-Initialisierung (aus "CString")



  • Erstmal danke für die Antworten... es klappt jetzt so wie ich es möchte :)... aber warum kann ich sowas nicht als konstante Membervariable anlegen?

    static const CString M_IDTAG = "_id";
    

    Ich bekomm den Fehler

    error C2864: "CAttributes::IDTag": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.

    Danke nochmals für Antworten!



  • hmm das sollte eigentlich nichts mit CString zu tuen haben... müsste eher daran liegen, das du in einer Klasse CAttributes eine Variable IDTag hast und der direkt in der Klassendefinition einen Wert zuweißt ... das sollte nicht gehen...



  • Ich sehe grad der Fehler ist falsch... er ist

    error C2864: "CAttributes::M_IDTAG": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.

    Also es ist schon irgendwas mit diesem M_IDTAG... das den Compiler stört.. aber was 😞



  • Da sagt dir doch die Fehlermeldung genau, was falsch ist - die Schreibweise "static const T x = y;" kannst du nur für statische intergrale Konstanten verwenden. Normale Member kannst du im Ctor bzw. bei der Definition initialisieren:

    class CAttributes
    {
      ...
      static const CString M_IDTAG;
      ...
    };
    
    //in der Attributes.cpp
    const CString CAttributes::M_IDTAG = "_id";
    

Anmelden zum Antworten