您的位置:首页 > 其它

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

2006-11-16 09:40 633 查看
示例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();
}

总结:派生模版的虚函数能够覆盖基模版的虚函数.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: