首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问虚函数的覆盖有关问题

2012-10-18 
请教虚函数的覆盖问题virtual boolexists (const String &filename)0如上,既然设定为虚函数,即表明它可以

请教虚函数的覆盖问题

virtual bool exists (const String &filename)=0 

如上,既然设定为虚函数,即表明它可以在继承被覆盖,但是=0又说明禁止覆盖,
请问这样的语句的意义在那里,谢谢!

[解决办法]
=0的意思是这个类不能直接实例化 必须由子类覆盖对应的虚函数吧?
貌似
[解决办法]
在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
  纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
[解决办法]
= 0 是纯虚函数,实现由子类提供。例外的是析构函数,将析构函数定义为纯虚函数后,还是得给出实现。
[解决办法]
1, 有纯虚函数(=0)的类不能实例化
2,所有的虚函数都可以在子类中覆盖。

热点排行