纯虚函数不应具有主体,但我只是注意到编译器接受以下代码:
class foo
{
virtual void dummy() = 0
{
cout << "hello";
}
};
那么,为什么允许纯虚函数具有主体呢?另外,即使函数具有主体,该类仍无法实例化,为什么呢?
纯虚函数可以有身体,但你将它们声明的事实纯虚正是说派生实现需要。
您可以从派生的方法(使用explicit BaseClass::method()
)执行纯虚拟方法,但仍然必须提供实现。
无法使用尚未被覆盖的纯虚方法实例化类是纯虚声明的要点。换句话说,声明纯虚拟方法的想法是确保程序员不会忘记提供其实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句