C ++ gibt die verschachtelte Klasse mit der Vorlage für das Basisklassenproblem zurück

9

Ich versuche ein Listenobjekt zu erstellen, in dem die Iterator-Klasse eingebettet ist, um zu verstehen, wie es funktioniert. In einer Methode versuche ich ein Iterator-Objekt zurückzugeben, aber es funktioniert nicht. Ich habe ein Beispiel erstellt, um das Problem zu zeigen:

%Vor%

Der Fehler liegt in der Nähe dieser Zeilen:

%Vor%

Der Compiler sagt mir, ich vermisse ein; vor A :: B :: returnThis ()

Ich versuche dieses Problem tagelang zu lösen und ich finde keinen Weg es zum Laufen zu bringen ... Ich würde wirklich etwas Hilfe schätzen. Vielen Dank im Voraus!

    
Vallières 27.11.2009, 21:01
quelle

1 Antwort

14

Sie benötigen typename :

%Vor%

Um dem Compiler anzuzeigen, dass A<T>::B ein Typ ist. Hier ist eine gute Erklärung warum.

Was B ist hängt davon ab, was A<T> ist, dies wird als Abhängigkeit bezeichnet. Jedes Mal, wenn Sie einen Typ aus einer Klasse oder Struktur erhalten und dieser von einer Vorlage abhängig ist, müssen Sie typename verwenden.

    
GManNickG 27.11.2009, 21:05
quelle

Tags und Links