Два аргумента шаблона и специализации
Я пытаюсь сделать шаблон класса с двумя аргументами. Тогда я хочу, чтобы функции были специализированными.
template<class T, int number>
class TestClass{
public:
TestClass(T x){
a = x;
z=number;
};
T print();
private:
T a;
int z;
};
template<class T, int number>
T TestClass<T, number>::print(){
return a + number;
};
//This is the funktion I dont know how to handle
template<>
char TestClass<char, number>::print(){
return a;
};
include <iostream>
include "TestClass.h"
using namespace std;
int main(){
TestClass<int, 10> obj1(10);
TestClass<double, 20> obj2(20.20);
TestClass<char, 30> obj3('A');
cout << obj1.print() << endl;
cout << obj2.print() << endl;
cout << obj3.print() << endl;
}
Я знаю, что эта тестовая программа не делает ничего полезного. char - это только один пример. Должно быть в состоянии быть чем угодно.
Это возможно? Нужен ли другой шаблон класса?
Большое спасибо заранее за ответы