代做毕业设计网站 道路桥梁wordpress热门文章代码
代做毕业设计网站 道路桥梁,wordpress热门文章代码,越秀网站建设优化,如何提高网站排名C中#xff0c;我们一般可以以基类声明纯虚函数#xff0c;然后让派生类继承并重写这个虚函数#xff0c;用override表示显示覆盖基类方法#xff0c;但一直没有提供一种方法来阻止派生类继承基类的虚函数。
C11标准引入了final说明符#xff0c;很好的解决了上面的问题…C中我们一般可以以基类声明纯虚函数然后让派生类继承并重写这个虚函数用override表示显示覆盖基类方法但一直没有提供一种方法来阻止派生类继承基类的虚函数。
C11标准引入了final说明符很好的解决了上面的问题。final告诉编译器该虚函数不能被派生类重写。
废话不多说上代码试着指出来下面的代码有哪些问题
class Base
{
public:virtual void plant(int x) {}
};class Derived : public Base
{
public:void plant(int x) final {}
};class SunDerived final : public Derived
{
public:void plant(int x) {}
};class GrandSunDev : public SunDerived
{
};
上述代码中基类Derived的虚函数 plant 声明为final那么派生类SunDerived重写 plant 函数的时候编译器会报错。
final说明符不止可以声明虚函数还可以声明类如果在类定义的时候声明了final那么这个类将不能作为基类被其他类继承SunDerived被声明为final那么GrandSunDev再继承SunDerived的时候编译器会报错。
注意C11标准中无论是override还是final都没有背作为保留的关键字override只有在虚函数尾部才有意义final只有在虚函数尾部以及类声明的时候才有意义。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90950.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!