J'ai le code qui ressemble à ceci:Comment se référer à une "classe propriétaire" en C++?
template<class T>
class list
{
public:
class iterator;
};
template<class T>
class list::iterator
{
public:
iterator();
protected:
list* lstptr;
};
list<T>::iterator::iterator()
{
//???
}
Je veux faire le constructeur de list::iterator
pour faire le point iterator::lstptr
à la liste où il est appelé. I.e .:
list xlst;
xlst::iterator xitr;
//xitr.lstptr = xlst
Comment ferais-je cela?
Et aussi, suis-je référentes mon droit iterator-constructeur, ou dois-je faire quelque chose comme ceci:
template<class T>
class list<T>::iterator
{
public:
list<T>::iterator();
protected:
list* lstptr;
};
Avez-vous essayé le code que vous avez commenté dans le deuxième bloc? Je ne connais pas le C++ (seulement C) et ça ressemble à ce que je ferais. – hhafez
Votre dernière version d'itérateur est correcte si vous changez le ctor de la liste :: iterator(); -> itérateur(); Bravo –