假设我们有一个类:
template <class Type>
class A
{
public:
void function1(float a, Type b);
void function1(float a, float b);
};
现在像这样实例化类:
A<int> a;
没关系,这个类将有 2 个带有这些参数的重载函数: (float a, int b); (浮动a,浮动b);
但是当你像这样实例化类时:
A<float> a;
你得到编译错误:
成员函数重新声明。
因此,根据类型的类型,我不想(或不希望)编译器定义一个函数,如下所示:
template <class Type>
class A
{
public:
void function1(float a, Type b);
#if Type != float
void function1(float a, float b);
#endif
};
但是,当然,上面的语法不起作用。是否可以在 C++ 中执行这样的任务?如果可能,请提供一个例子。