iterator innerhalb template-Klasse verwenden



  • Hallo zusammen!

    Wenn ich versuche, folgenden code zu übersetzen, erhalte ich eine Fehlermeldung.
    Liegt wohl an der Iterator-Definition.

    template<class KeyType, class ValueType>
    void DictionaryAsMap<KeyType, ValueType>::print() const
    {
        map<KeyType, ValueType>::iterator it; // Fehler!
    }
    

    Was mach ich falsch? Kann mir jemand weiterhelfen?

    Gruß heine



  • heine789 schrieb:

    Was mach ich falsch?

    Du sagst uns nicht wie die Fehlermeldung heißt.



  • heine789 schrieb:

    Hallo zusammen!

    Wenn ich versuche, folgenden code zu übersetzen, erhalte ich eine Fehlermeldung.
    Liegt wohl an der Iterator-Definition.

    template<class KeyType, class ValueType>
    void DictionaryAsMap<KeyType, ValueType>::print() const
    {
        map<KeyType, ValueType>::iterator it; // Fehler!
    }
    

    Was mach ich falsch? Kann mir jemand weiterhelfen?

    Gruß heine

    Hi,

    Du hast vergessen typename davor zu schreiben.
    Es muss so aussehen:

    template<class KeyType, class ValueType>
    void DictionaryAsMap<KeyType, ValueType>::print() const
    {
        typename map<KeyType, ValueType>::iterator it; // Kein Fehler! ;)
    }
    

    Edit: Und da fällt mir auf, das du eine const Methode schreibst, daher solltest du hier auch const_iterator verwenden sonst hast du bald danach gleich wieder einen Fehler 😉

    BR
    Vinzenz



  • typename


Anmelden zum Antworten