Witam. Chciałbym w ramach ćwiczeń napisać prosty program, który korzysta z szablonów. Wymyśliłem sobie, że w programie będzie jedna klasa, która będzie korzystać z tego szablonu oraz druga klasa, która będzie przetrzymywała jakąś zmienną, np. numer id. Pytanie moje brzmi czy ta klasa, aby móc używać szablonu sama musi być szablonem klas ? Chodzi mi o takie coś:
class Testowa
{
public:
Druga_klasa *wskaznik_1,*wskaznik_2;
Testowa();
template <class typ> typ pokaz_numer(typ obiekt, int numer);
};
Czy powinno wyglądać to tak:
template <class typ> typ pokaz_numer(typ obiekt, int numer);
class Testowa
{
public:
Druga_klasa *wskaznik_1;
Testowa();
};
Kod drugiej klasy:
class Druga_klasa
{
public:
int sejf;
Druga_klasa(int id): sejf(id){};
};
oraz kod szablonu:
template <class typ> typ pokaz_id(typ obiekt, int numer)
{
typ *wsk= new typ(numer); // w tym miejscu wywala mi błąd: "invalid conversion from int to Druga_klasa
return wsk;
};
taka wersja również zwraca ten sam błąd:
template <class typ> typ pokaz_id(typ obiekt, int numer)
{
typ zmienna(numer); // w tym miejscu wywala mi błąd: "invalid conversion from int to Druga_klasa
return zmienna;
};
A tak wygląda wywołanie szablonu:
Testowa::Testowa()
{
wskaznik_1= new Druga_klasa(0);
wskaznik_2= pokaz_id(wskaznik_1,1);
}
Piszę w Qt. Ogólnie program jest bez sensu, ładu i składu. W rzeczywistości piszę coś zupełnie innego, chciałem tylko mniej wiecej w jakiś prosty sposób przybliżyć problem z jakim walcze w moim projekcie. Czy ten błąd może być spowodowany tym, że te dwie klasy trzymam w innych plikach ?