cout
我在链接列表显示函数中重载运算符时遇到问题。我在这个函数中使用了一个迭代器,所以我不知道我应该怎么做,因为它说没有声明迭代器。
我不知道如何cout
在同一个函数中使用带有重载的迭代器,因为这是我第一次使用重载。
template <class T> class List
{
private:
Cell<T>* tete;
Cell<T>* queue;
int longeur;
public:
class Iterator
{
Cell<T>* elem;
public:
Iterator(List<T>* L){elem=L->tete;};
T operator*(){return elem->data;};
void operator ++(){elem=elem->suivant;};
operator bool (){return elem!=NULL;};
T operator ->(){return &elem->data;};
};
friend std::ostream & operator<< ( std::ostream & out , const List<T> & L ){L.afficher(out);};
friend class List<T>::Iterator;
//Constructeur & Destructeur
List<T>(void);
~List<T>(void);
int ajout_en_tete (List<T>& a,T Val);
int ajout_en_fin (List<T>& a, T Val);
void concat (List<T>& a , const List<T>& b);
void copie (const List<T>& a, List<T>& b);
int supprimer (List<T>& a, int pos);
void supprimer_liste(void);
int Taille (const List<T>& a);
int acces (const List<T>& a , int pos);
std::ostream afficher ( std::ostream & out);
void test_vide(List<T>& a);
Iterator iter(){return Iterator(this);};
};
std::ostream afficher ( std::ostream & out)
{
Iterator it=iter();
if(a.longeur==1)
{
out <<*it<< endl;
}
else
{
while(it)
{
out <<*it<< endl;
++it;
}
}
}