我希望 B 类不能重新定义其基类 A 的成员函数之一。有没有办法做到这一点?
编辑:
感谢您的回答。我也可以防止非虚拟成员函数被覆盖吗?
最佳答案
如果您的意思是不允许派生类覆盖其基类的虚函数,C++11 引入了一种使用 final
的方法virt-specifier(标准中的称呼):
struct B{
virtual void f() final;
};
struct D : B{
void f(); // error: 'B::f' marked 'final'
};
不过,我不知道哪些编译器支持它。可能是 GCC 4.7 和 Clang。
关于c++ - 是否可以防止成员函数被重新定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8759455/