我有兴趣为仅针对特定数据类型的泛型类定义自定义方法。我不确定什么是实现它的好方法。如果我将它放在类之外,我将无法访问类变量,所以我认为我永远无法让它以这种方式工作。如果我将它放在类中,它意味着适用于任何类型 T 而不仅仅是特定类型。我已经能够让我的代码以后一种方式工作,只需定义它的通用版本并仅发送该类型作为我感兴趣的输入,但有没有更简洁的方法来实现这一点?
下面是一些代码以使其清楚
#include<iostream>
#include<string>
using namespace std;
template<typename T>
class abc
{
public:
void myvoid();
};
template<typename string>
void abc<string>::myvoid()
{
cout<<"This portion should execute only if an instance of class is called with a string parameter" ;
}
int main()
{
abc<int> int1;
abc<string> string1;
string1.myvoid(); //should work good
int1.myvoid(); //shouldnt execute myvoid
}