2016-02-12 67 views
1

我正在寻找开始将模板放入我的C++类代码中,但我遇到过以前没有遇到过的情况。基本上我有一个非模板类,但我只需要模板中的1个功能。非模板类中的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) 
{ 

}