C++ C+中的模板+;
我们是否可以在没有模板类的普通类中声明C++ C+中的模板+;,c++,visual-c++,templates,C++,Visual C++,Templates,我们是否可以在没有模板类的普通类中声明模板函数,或者它应该始终位于模板类中?是的,您也可以在非模板类中声明模板函数,例如: struct X { template<class T> void f(const T& t) { // ... } }; struct X{ 模板 空f(常数T&T){ // ... } }; 我们可以在普通类中声明模板函数而不声明模板类吗 是的,我们可以。比如说 class demo { public
模板
函数,或者它应该始终位于模板类
中?是的,您也可以在非模板类中声明模板函数,例如:
struct X {
template<class T>
void f(const T& t) {
// ...
}
};
struct X{
模板
空f(常数T&T){
// ...
}
};
我们可以在普通类中声明模板函数而不声明模板类吗
是的,我们可以。比如说
class demo
{
public:
template <typename T>
void func(const T& x) {
//do stuffs
}
};
int main()
{
demo d;
d.func<int>(5);
}
类演示
{
公众:
模板
void func(常数T&x){
//做事
}
};
int main()
{
演示d;
d、 func(5);
}
是完全有效的是的,您可以,但请确保您的模板函数定义和声明位于头文件中。如果你想知道更多为什么会这样或者更多关于模板的信息,我可以向你推荐这本书我想你指的是“类模板”。类模板,如
template struct Foo{}
是一种模板,但不是一种类。类似地,“函数模板”是另一种模板,而不是函数。