文章目录
- final
- 1.修饰函数
- 2.修饰类
- override
final
C++ 中增加了 final 关键字来 限制某个类不能被继承,或者某个虚函数不能被重写,和 Jave 的 fina 关键字的功能是类似的。
如果使用 final 修饰函数,只能修饰虚函数,并且要把final关键字放到类或者函数的后面。
1.修饰函数
如果使用 final 修饰函数,只能修饰虚函数,这样就可以防止子类重写父类函数。
class Base
{
public://错误例子virtual void test() final //在这个不可以添加final,因为子类要重写这个方法。{.....}//正确例子virtual void test(){.....}};
class Son:public Base
{
public:void test() final {.....}//错误例子void hello() final //不可以在普通方法中添加final{}};
2.修饰类
class Son final
{};
添加 final 后,别的类就不可以继承它。
override
override 关键字确保在派生类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,这样就可以保证重写的虚函数的正确性,也提高了代码的可读性,和 final 一样 这个关键字要写到方法的后面 。使用方法如下:
class Base
{
public://错误例子virtual void test() final //在这个不可以添加final,因为子类要重写这个方法。{.....}//正确例子virtual void test(){.....}};
class Son:public Base
{
public:void test() override{.....}};