J'essaie de créer un objet liste, avec la classe itérateur imbriquée à l'intérieur pour comprendre comment cela fonctionne. Dans certaines méthodes, j'essaie de renvoyer un objet itérateur mais cela ne fonctionne pas. J'ai créé un exemple pour montrer le problème:C++ retournant une classe imbriquée avec un modèle sur un problème de classe de base
// CLASS A
template <class T>
class A
{
public:
class B;
A(){}
};
// CLASS B
template <class T>
class A<T>::B
{
private:
int varB;
public:
B(B& b);
B(const int&);
B returnThis();
};
template <class T>
A<T>::B::B(const int& value)
{
varB = value;
}
template <class T>
A<T>::B::B(B& b)
{
varB = b.varB;
}
template <class T>
A<T>::B A<T>::B::returnThis()
{
return *this;
}
// MAIN
void main()
{
A<int>::B classB(10);
}
L'erreur est à proximité de ces lignes:
template <class T>
A<T>::B A<T>::B::returnThis()
Le compilateur me dit que je suis un manque; avant A :: B :: returnThis()
J'essaye de résoudre ce problème pendant des jours et je ne peux pas trouver un moyen de le faire fonctionner ... J'apprécierais vraiment de l'aide. Merci d'avance!
Merci beaucoup! Je vais regarder @ typename! –
Pas de problème. :) – GManNickG