示例1:
template<typename T>
class CBaseTempl
{
private:
virtual void VirtualFun1() = 0
{
std::cout << "CBaseTempl::VirtualFun1" << endl;
}
};
template<typename T>
class CDerivedTempl : public CBaseTempl<T>
{
public:
virtual void VirtualFun1()
{
std::cout << "CDerivedTempl::VirtualFun1" << endl;
}
};
void AppMain()
{
CDerivedTempl<int> Obj;
Obj.VirtualFun1();
}
总结:必须实现基模版中的几个纯虚函数,可以改变这纯虚函数的访问权限,private->public,虚函数无论如何都能够被继承.
示例2:
template<typename T>
class CBaseTempl
{
private:
virtual void VirtualFun1()
{
std::cout << "CBaseTempl::VirtualFun1" << endl;
}
};
template<typename T>
class CDerivedTempl : public CBaseTem