Dziedziczenie, typy generyczne, problem

Dziedziczenie, typy generyczne, problem
WY
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam serdecznie,

mógłby ktoś rzucić świeżym okiem na ten kawałek kodu? Występuje błąd:

Kopiuj
line 18: error `wierzcholki` was not declared in this scope.

Wydawałoby się, że pola klasy Graf powinny być dostępne dla klasy pochodnej (są przecież publiczne). 5-tą godzinę już nad tym siedzę - udało mi się wyłapać już co powoduje błąd (poniższy kawałek kodu). Byłbym bardzo wdzięczny.
Dodam tylko, że po usunięciu typów generycznych i zastąpieniu ich np. int'em błąd nie występuje.

Kopiuj
#include <iostream>
#include <vector>

using namespace std;

template<class typW>
class Graf{
public:
	vector<typW > wierzcholki;
};


template<class typK>
class GrafSkierowany : public Graf<typK>{
public:
  void getIteratorWierzcholkow()
  {
    cout<<wierzcholki.size();
  };
};


int main (int argc, char * const argv[]) {
  GrafSkierowany<int>  graf1;
	graf1.getIteratorWierzcholkow();
  return 0;
};

Pozdrawiam

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2
Kopiuj
#include <iostream>
#include <vector>

using namespace std;

template<class T>
class Graf
{
protected:
    vector<T> vertexes;
};


template<class T>
class GrafSkierowany : public Graf<T>
{
public:
    void printVertexesSize()
    {
        cout<<this->vertexes.size();
    }
};


int main (int argc, char * const argv[])
{
    GrafSkierowany<int>  graf;
    graf.printVertexesSize();
    return 0;
}
WY
  • Rejestracja: dni
  • Ostatnio: dni
0

Cholernie Ci dziękuję! Taka głupia drobnostka i tyle czasu mi zmarnowała.

Gdybyś czegoś potrzebował - do usług.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.