Mam program jak poniżej (który przybrał taką formę aby jak najlepiej zilustrować mój problem)
#include <iostream>
#include <list>
using namespace std;
class para
{
public:
int dana;
int ilosc;
para(int wartosc, int ile=1):dana(wartosc), ilosc(ile){}
};
class wielozbior:public list<para>
{
public:
~wielozbior(){clear();}
void dodaj(int d)
{
para *wsk= new para(d,12);
push_back(*wsk);
}
void wypisz()
{
for(list<para>::const_iterator iter = begin(); iter!= end(); iter++)
cout<<iter->dana<<" "<<iter->ilosc<<endl;
}
};
/*
template <class T>
class probna:public list<T>
{
public:
~probna(){this->clear();} //dlaczego konieczne bylo dopisanie this-> ??
void dodaj(T wartosc)
{
push_back(wartosc);
}
void wypisz()
{
for(list<T>::iterator iter=begin(); iter!=end(); iter++) //dlaczego tutaj zwraca błąd
cout<<*iter<<endl;
}
};
*/
int main(void)
{
wielozbior przyklad;
przyklad.dodaj(5);
przyklad.dodaj(2);
przyklad.dodaj(3);
przyklad.dodaj(1);
przyklad.wypisz();
return 0;
}
Pomijam jakie było polecenie do zadania.
Moje pytanie brzmi "Dlaczego zwraca mi bląd w szablonie klasy probna (zakomentowane) przy probie utworzenia iteratora do odziedziczonego szablonu listy i jak obejsc ten problem?"