类模版继承中的虚函数使用示例

来源:互联网 发布:c多进程编程 编辑:程序博客网 时间:2024/05/19 02:01

示例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 CBaseTempl<T>
{
public:
 virtual void VirtualFun1()
 {
  std::cout << "CDerivedTempl::VirtualFun1" << endl;
 }
}

void AppMain()
{
 CDerivedTempl<int> Obj;
 Obj.VirtualFun1();
}

总结:派生模版的虚函数能够覆盖基模版的虚函数.

原创粉丝点击