我想创建一个
的函数而t为template<typename T>
string myFunction(T t) {
string str1;
//some computation with t
return str1();
}
因此,在我的.h
文件中,我执行类似
class myClass {
private:
//some variable
public:
string myFunction(T);
}
当然它会出错,说“什么是T?”
我应该怎样做才能使myFunction
能够获得T
?
答案 0 :(得分:3)
制作成员函数模板:
class Foo {
template<typename T>
string myFunction(T t)
{
}
};
或者,创建一个类模板:
template<typename T>
class Foo {
string myFunction(T t)
{
}
};
对你的案件有意义。如果你在课外定义函数,那么:
class Foo {
template<typename T>
string myFunction(T);
};
template<typename T>
string Foo::myFunction(T t)
{
}
用于成员函数模板,或
template<typename T>
class Foo {
string myFunction(T);
};
template<typename T>
string Foo<T>::myFunction(T t)
{
}
用于课堂模板。