用来 阻断继承 和 阻断虚函数继续 “重写” (断子绝孙)
断绝继承类
class A
{
};
class B final : public A
{
};
class C : public B //错误 类B已经加final关键词 不允许被别人继承
{
};
断绝虚函数
class A
{
virtual void p(int a)
{
cout<<a<<endl;
}
}
class B :public A
{
void p(int a) final
{
cout<<a*a<<endl;
}
};
class C :public B
{
void p(int a) //错误 不允许该函数重写
};
override 虚函数重写 目的:提高代码可读性 告诉大家我要重写虚函数 而且如果重写虚函数出现错误(比如 函数名错误 参数错误) 编译器也会报错
class Base
{
public:
virtual void test()
{
cout << "Base class...";
}
};
class Child : public Base
{
public:
void test() override
{
cout << "Child class...";
}
};
class GrandChild : public Child
{
public:
void test() override
{
cout << "Child class...";
}
};