[VS C++2k8] Klasa szablonowa Wektor i jej iterator

0

Witam,
Jestem poczatkujacym programista i mam nastepujący problem, chce stworzyc prosta baze danych w ktorej to bede przetrzymywal rozne dane do tego celu chce uzyc szablonu. Plik wektor.h wyglada tak

 
template <class typ>								
class Wektor
{
public:	
	friend class Iterator<typ>;	   
	typ *tabl;
	int IleObiektow;
	int PojemnoscWektora;

Plik iterator.h

 template <class typ> 
class Iterator
{
public:
	friend class Wektor<typ>;
	Wektor<typ> *Pojemnik;
	typ *Obecny;
	int idx;

	Iterator(const Wektor<typ> & NowyPoj) : Pojemnik(NowyPoj)
	{
		idx = 0;
		Obecny=NowyPoj.CoNa(0);
	}

metoda CoNa jest zdefiniowana w klasie wektor i dziala ok.
Gdy w main probuje wrzucic plik do iteratora dostaje bledy

 
int main () 
{
  Wektor<Ulica*>BazaUlic;
  WczytajZPliku(&BazaUlic);
  Iterator it(&BazaUlic);
}

use of class template requires template argument list
oraz
'Iterator' : class has no constructors//!!
Czy ktos moglby mi pomoc co z tym kodem zrobic aby dzialalo ?:)

0

Iterator jest szablonem więc musisz jawnie ustawić jego parametr:

Iterator<Ulica*> it(BazaUlic);

Pojemnik jest wskaźnikiem, a Ty w konstruktorze przypisujesz tej zmiennej obiekt NowyPoj.

0

Wiesz, chciałem żeby ten wskaźnik pokazywał mi na kontener z ulicami dlatego chce żeby pojemnik pokazywał na obiekt Ulice.
Ktoś mógłby mi powiedzieć gdzie źle rozumuje?

0

Ty mi nie tłumacz, co chciałeś zrobić, bo to akurat wiem. Pokazuje Ci tylko, że masz błąd składniowy wewnątrz ctora Iterator, a dokładniej przy inicjalizacji wskaźnika Pojemnik. Jesli napisałeś te dwie klasy sam, bez problemu powinieneś poprawić ten błąd ;)

No i usuń consta z parametru.

1 użytkowników online, w tym zalogowanych: 0, gości: 1