我有一个带有虚函数的基类:
class Base
{
public:
virtual void Function();
};
void Base::Function()
{
cout << "default version" << endl;
}
Run Code Online (Sandbox Code Playgroud)
和派生的模板类:
template <class T> class Derived : public Base
{
public:
virtual void Function();
};
Run Code Online (Sandbox Code Playgroud)
Function()除了某些选定类型之外,是否有办法从所有类型的基类中提取出来?所以,我想是能够定义一个重写Function(),比如说,int和long:
void Derived<int>::Function()
{
cout << "overriden version 1" << endl;
}
void Derived<long>::Function()
{
cout << "overriden version 2" << endl;
}
Run Code Online (Sandbox Code Playgroud)
并具有Function()所有其他类型的默认版本,而没有Function()为它们明确定义,因此输出为
int main ()
{
Derived<int> derivedInt;
derivedInt.Function();
Derived<long> derivedLong;
derivedLong.Function();
Derived<double> …Run Code Online (Sandbox Code Playgroud)