请教虚函数的覆盖问题
virtual bool exists (const String &filename)=0
如上,既然设定为虚函数,即表明它可以在继承被覆盖,但是=0又说明禁止覆盖,
请问这样的语句的意义在那里,谢谢!
[解决办法]
=0的意思是这个类不能直接实例化 必须由子类覆盖对应的虚函数吧?
貌似
[解决办法]
在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。
[解决办法]
= 0 是纯虚函数,实现由子类提供。例外的是析构函数,将析构函数定义为纯虚函数后,还是得给出实现。
[解决办法]
1, 有纯虚函数(=0)的类不能实例化
2,所有的虚函数都可以在子类中覆盖。