Closed cctyl closed 3 months ago
2.6章节-显式虚虚函数重载-final禁止子类重载 中,示例是:
struct Base { virtual void foo() final; }; struct SubClass1 final: Base { }; // 合法 struct SubClass2 : SubClass1 { }; // 非法, SubClass1 已 final
这会让初学者以为,final必须在父类SubClass1 也继承了一个父类Base ,这种情况下使用final,才能让SubClass2 不能继承SubClass1 。 实际情况是,不管SubClass1 是否继承Base ,都可以使用final
建议,示例改成:
struct SubClass1 final { }; struct SubClass2 : SubClass1 { }; // 非法, SubClass1 已 final
我觉得多加一个例子好一点。
这个书缺漏比较多,没啥必要补充了,关闭
动机
2.6章节-显式虚虚函数重载-final禁止子类重载 中,示例是:
这会让初学者以为,final必须在父类SubClass1 也继承了一个父类Base ,这种情况下使用final,才能让SubClass2 不能继承SubClass1 。 实际情况是,不管SubClass1 是否继承Base ,都可以使用final
需求说明
建议,示例改成: