在 C++11中,我们可以使用新的 override关键字,来让程序员可以更加明显地表明他对于重写的设计意图,增加代码的可读性。例如:
class A
{
public:
virtual void show()
{
cout<<"A"<<endl;
}
};
class B:public A
{
public:
void show() override
{
cout<<"B"<<endl;
}
};
有时候,程序员可能想要阻止某个虚函数被重写,在这种情况下,他可以为虚函数加上final关键字来达到这个目的。例如:
class A
{
public:
virtual void show() final
{
cout<<"A"<<endl;
}
};
class B:public A
{
public:
void show() override
{
cout<<"B"<<endl;
}
}
编译器报错:
error: virtual function 'virtual void B::show()'
error: overriding final function 'virtual void A::show()'