1
实现接口我有这样的接口:通过模板
struct I
{
virtual void f(int) = 0;
virtual void f(float) = 0;
};
我可以使用类似于下一类的东西implemnt I
?
struct C : public I
{
template<typename T>
void f(T);
};
实现接口我有这样的接口:通过模板
struct I
{
virtual void f(int) = 0;
virtual void f(float) = 0;
};
我可以使用类似于下一类的东西implemnt I
?
struct C : public I
{
template<typename T>
void f(T);
};
不,你不能这样做。模板方法重载原来的两种方法(即它是一个具有相同名称的不同方法)。 C
仍然有两个纯虚函数。
正如NPE指出的,你不能直接这样做。但是,您仍然可以通过代表团避免重复代码:
struct C : public I
{
void f(int x) { f_internal(x); }
void f(float x) { f_internal(x); }
private:
template<typename T>
void f_internal(T x) { do stuff with x; }
};
我已经做了这一点,它看起来有点愚蠢到对模板做的一切,而是因为我需要实现一些接口有调用模板中的所有功能... – Felics 2013-04-27 13:25:20