我有一个带有虚函数的基类:
class Base
{
public:
virtual void Function();
};
void Base::Function()
{
cout << "default version" << endl;
}
和一个派生的模板类:
template <class T> class Derived : public Base
{
public:
virtual void Function();
};
有没有办法Function()
从所有类型的基类中获取,除了一些选择的类型?所以我想要的是能够定义一个覆盖Function()
,比如说,int
和long
:
void Derived<int>::Function()
{
cout << "overriden version 1" << endl;
}
void Derived<long>::Function()
{
cout << "overriden version 2" << endl;
}
并拥有Function()
所有其他类型的默认版本,没有明确定义Function()
它们,所以输出
int main ()
{
Derived<int> derivedInt;
derivedInt.Function();
Derived<long> derivedLong;
derivedLong.Function();
Derived<double> derivedDouble;
derivedDouble.Function();
}
将会
overriden version 1
overriden version 2
default version
可能吗?