16 九月 2016
16 九月 2016
class CFoo final { //--- 类主体 }; class CBar : public CFoo { //--- 类主体 };当如上面显示的一样试图以'final'修饰符从一个类继承时,编译器显示一个错误:
class CFoo { void virtual func(int x) const { } };类函数重写在继承类:
class CBar : public CFoo { void func(short x) { } };但是自变量类型错误的从'int' 变为'short'。实际上,替代重写的重载类函数在这种情况下执行。根据重载函数定义算法进行操作时,编译器在有些情况下可能会选择基本类中定义的类函数而不是重写的类函数。
class CBar : public CFoo { void func(short x) override { } };如果在重写过程中更改了类函数签名,编译器将无法在发布编译错误的父类中找到相同签名的类函数:
class CFoo { void virtual func(int x) final { } }; class CBar : public CFoo { void func(int) { } };当如上面显示的一样试图以'final'修饰符重写一个类函数,编译器显示一个错误:
更新文档。