Próbuje zrobić prosty operator wejscia i wyjscia w klasie z szablonem,, ale napotkalem na pewne komplikacje podczas kompilacji tego kodu:
template<class T> class bList;
template<class T> istream & operator>> (istream & wejscie, bList<T> & w);
template<class T> ostream & operator<< (ostream & ekran, const bList<T> & w);
template <class T>
class bList
{
private:
el<T> * head;
public:
friend ostream & operator<< <>(ostream & ekran, const bList<T> &w);
friend istream & operator>> <>(istream & wejscie, bList<T> &w);
bList(){head=NULL;};
bList(const bList<T> & w);
void Clear();
~bList(){ Clear(); };
void AddEl(T ele); //dodaje lement do listy w odpowiednie miejsce sortujac go
bList<T> AddLists(const bList<T> & a,const bList<T> & b);
bList operator=(const bList<T> & w);
bList operator+(const bList<T> & w){return addlists(*this,w);};
};
template <class T>
ostream & operator<<(ostream & ekran,const bList<T> &w)
{
ekran<<"Podana lista: " <<endl;
el<T> * wsk=w.head;
int i=1;
while(wsk!=NULL)
{
ekran<<i<<":"<<endl;
ekran<<wsk->data<<endl;;
wsk=wsk->next;
}
return ekran;
}
istream & operator>>(istream &wejscie, bList<T> &w) //TUTAJ
{
int s=0;
cout << "Podaj ilosc elementow";
wejscie>>s;
el<T> element;
int i;
for(int i=0;i<s;i++)
{
cout<<"Podaj "<<i+1<<" element listy:"<<endl;
wejscie>>i;
lista.AddEl(element);
}
return wejscie;
}
Podczas kommpilacji wyskakuje mi error, że w linijce którą, zkomentowałęm tekstem "TUTAJ" T nie jest zadeklarowane. Poza tym wyskakują też krzaki innych będów wynikająccych pewnie z jednego głupiego błędu. Do kompilacji używałem g++ i DevC++ w obu wystąpił błąd. Proszę o pomoc.