C++ 如何在类的方法参数中使用模板
我在类中使用带有方法参数的模板时遇到问题。C++ 如何在类的方法参数中使用模板,c++,class,templates,C++,Class,Templates,我在类中使用带有方法参数的模板时遇到问题。 下面是一个例子,但不是我的真实代码,它有问题,为了简化代码 类声明: class Test { public: Test(); template <class T> void PrintData(T info); }; Test::Test(){} void Test::PrintData(T info){ cout << info << endl; } int main(){
下面是一个例子,但不是我的真实代码,它有问题,为了简化代码 类声明:
class Test {
public:
Test();
template <class T>
void PrintData(T info);
};
Test::Test(){}
void Test::PrintData(T info){
cout << info << endl;
}
int main(){
Test test;
test.PrintData<const char*>("Thank you.");
return 0;
}
类测试{
公众:
Test();
模板
无效打印数据(T信息);
};
类定义:
class Test {
public:
Test();
template <class T>
void PrintData(T info);
};
Test::Test(){}
void Test::PrintData(T info){
cout << info << endl;
}
int main(){
Test test;
test.PrintData<const char*>("Thank you.");
return 0;
}
Test::Test(){}
无效测试::打印数据(T信息){
cout模板
无效测试::打印数据(T信息){
将是该函数的正确定义。除此之外,还包括标题中的定义。在定义您的PrintData
函数的类定义部分,需要引用模板
你的定义是这样的
模板
无效测试::打印数据(T信息){
cout您需要将模板成员函数的定义放在头文件中,它应该可以正常工作
标题:
#include <iostream>
class Test
{
public:
Test();
template <class T>
void PrintData(T info);
};
template <class T>
void Test::PrintData(T info)
{
std::cout << info << std::endl;
}
#包括
课堂测试
{
公众:
Test();
模板
无效打印数据(T信息);
};
模板
无效测试::打印数据(T信息)
{
标准::cout