cześć
mam coś takiego
template<class T> void Check(T*)
template<> void Check(int*)
ale gdy wywołuję potem
Check(ptrToInt);
to i tak wywołuje mi szablon ogólny a nie szczegółowy
może ktoś powiedzieć czemu tak?
cześć
mam coś takiego
template<class T> void Check(T*)
template<> void Check(int*)
ale gdy wywołuję potem
Check(ptrToInt);
to i tak wywołuje mi szablon ogólny a nie szczegółowy
może ktoś powiedzieć czemu tak?
A co to jest ptrToInt
?
#include <iostream>
using namespace std;
template<class T> void Check(T*);
template<> void Check(int* p)
{
cout << "Pointer na int: " << *p << "\n";
}
template<> void Check(char* p)
{
cout << "Pointer na char: " << p << "\n";
}
template<> void Check(float* p)
{
cout << "Pointer na float: " << *p << '\n';
}
int main()
{
int a = 5;
char b[4] = "ala";
float c = 4.0;
Check(&a);
Check(b);
Check(&c);
return 0;
}
Sprawdz czy przekazujesz dobre dane.
zaaaraz.
skoro mamy
template<class T> void Check(T*)
to podanie tam int*
oznacza, że T jest int
, bo parametrem funkcji jest T*
.