Szablon klasy- różne funkcje dla różnych typów

0

Mam pewien problem z szablonami klas.

template <class type>
class xyz{
private:
type a;
public:
xyz();
zrob();
};

Załóżmy taki przykładowy szablon. Czy mogę zrobić tak, aby funkcja "zrob()" wykonywała coś zależnie od typu danych? Jeśli na przykład wywołam klasę:

xyz <int> a;
xyz <char> b;

to żeby a.zrob() wyświetlało "xza", a b.zrob() wyświetlało "gfd"?
Mam nadzieję, że zrozumiecie, o co mi chodzi.
Z góry dzięki za pomoc.

1

Zrób specjalizację dla konkretnego typu danych, dla którego ma się zachowywać inaczej:

#include <iostream>
using namespace std;

template <class type>
class xyz 
{
public:
    void zrob() { cout << "xza" << endl; }
};

template<>
class xyz<char>
{
public:
	void zrob() { cout << "gdf" << endl; }
};

int main() 
{
	xyz<int> a;
	xyz<char> b;
	xyz<double> c;
	a.zrob();
	b.zrob();
	c.zrob();
	
	return 0;
}
0

Dokładnie o to mi chodziło, wielkie dzięki.

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