Hej mam problem z szablonami klas ... a dokladniej z ich parametrami.

Chodzi o implementacje grafu i iteratora.

Mam dwa szablony klas.
Pierwsza Graf<W , K> z dwoma parametrami oznaczajacymi typ wierzcholka i krawedzi.

Oto czesc szablonu klasy Graf<W , K> z konstruktorem ... reszty metod nie podaje

template <class W , class K>
class GrafIteratorWierzcholkowy ;

const int pojemnoscGrafu = 15 ;

template <class W , class K>
class Graf
{
private:
    W tablicaW[pojemnoscGrafu] ;
    K tablicaK[pojemnoscGrafu][pojemnoscGrafu] ;
    int ileW ;
public:
    typedef GrafIteratorWierzcholkowy<W> iterW ;
        
    Graf() : ileW(0) { }        // konstruktor

    friend class GrafIteratorWierzcholkowy<W , K> ;
}

A teraz szablon klasy GrafIteratorWierzcholkowy<W>
Ta klasa ma tylko jeden parametr taki jak w Grafie<W , K>
Drugi (typ krawedzi K) jej nie obchodzi ...

Oto ten szablon (tylko z konstruktorem, reszty metod nie podaje):

template <class W>
class GrafIteratorWierzcholkowy
{
    friend class Graf<W , class K> ;
public:    
    int nr ;
    W wybrany ;
    Graf<W , class K> & graf ;    

public:
    GrafIteratorWierzcholkowy(Graf<W , class K> & gr) : graf(gr)
    {
        nr = 0 ;
        W wybrany = graf.tablicaW[nr] ;
    }
}

Co jest nie tak w szablonie klasy GrafIteratorWierzcholkowy<W>.
Jezeli np. zamienie w tym szablonie w parametrach klasy Graf z Graf<W , class K> na Graf<W , int> , to dla Grafow z krawedziami typu int bedzie iterator dzialal ... ale mi chodzi zeby dzialal z kazdym Grafem bez wzgledu na to jakiego typu sa krawedzie (K) ...

Co tu zmienic?

Mam nadzieje, ze jasno opisalem moj problem.

Z gory dzieki za ewentualne odpowiedzi.

Pozdrawiam.
AcidSeal