两个模板参数和特化

时间:2016-02-25 12:49:45

标签: c++ templates partial-specialization

我正在尝试使用两个参数创建一个类模板。 然后我想让这些功能变得专业化。

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只是一个例子。它应该可以是任何东西。

这可能吗?我需要另一个课程模板吗?

非常感谢您的答案

0 个答案:

没有答案