C++11 中函数的“final”关键字的用途是什么?

2024-01-03

目的是什么finalC++11 中函数的关键字?我知道它可以防止派生类重写函数,但如果是这种情况,那么将您的函数声明为非虚拟还不够吗?final功能?我在这里还缺少其他东西吗?


正如 idljarn 在评论中已经提到的那样,您缺少的是,如果您是压倒性的来自基类的函数,那么您不可能将其标记为非虚拟:

struct base {
   virtual void f();
};
struct derived : base {
   void f() final;       // virtual as it overrides base::f
};
struct mostderived : derived {
   //void f();           // error: cannot override!
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++11 中函数的“final”关键字的用途是什么? 的相关文章

随机推荐