Funktionsdeklaration - inline implementiert's sich, anders nicht



  • Hier mein Problem: Die Funkton weiter unten laesst sich nur inline implementieren, was ich echt nicht verstehen kann (oder ich hab 'nen dummen Fehler gemacht oder bin selber dumm):

    #include <iostream>
    
    class Item {
        public:
            class ID {
            };
    
            Item(const ID& id):m_id(id) {}
            virtual ~Item() {}
    
            virtual ID& id();         
        private: 
            ID m_id;
    };
    
    //Wenn ich diese Funktion inline deklariere, funktioniert's,
    //sonst aber gibt's 'nen "syntax error before '&' token"
    const ID& Item::id() const {
        return m_id;
    }
    
    int main()
    {
    
        return 0;
    }
    

    Soll ich mich jetzt etwa entscheiden: Entweder inline oder gar nicht?

    Was mache ich falsch?



  • Hallo,

    es muss so heissen:

    const Item::ID& Item::id() const {
        return m_id;
    }
    

    schliesslich ist ID innerhalb von Item deklariert.

    mfg
    v R



  • Achja, genau! War also doch die eigene Dummheit.

    Danke.


Anmelden zum Antworten