非模板类中的C ++模板函数

时间:2016-02-12 06:21:48

标签: c++ templates

我希望开始在我的c ++类代码中添加模板,但我遇到过以前没见过的情况。基本上我有一个非模板类,但在我需要模板化的类中只有一个函数。

class example
{
 public:
 example();
 ~example();
 <template T> templatefunction(T);
 nontemplatefunction(string x);
};

这可能吗?如果是这样,它是一个常见的解决方案还是我完全错误地看模板?

1 个答案:

答案 0 :(得分:2)

正如人们在评论中所指出的,这样做没有问题。

需要注意的一个方面是放置方法templatefunction的定义。暂时(参见ISO cpp FAQ),您应该考虑将其放在头文件中,这与您可能对其他方法的定义做的不同。因此,你有example.hpp

class example
{
 public:
 example();
 ~example();
 template<typename T> void templatefunction(T);
 void nontemplatefunction(string x);
};

template<typename T> void example::templatefunction(T)
{

}

然后example.cpp

example::example(){}

void example::nontemplatefunction(string x)
{

}