使用是否有优势:
struct Base
{
virtual void foobar();
};
struct Derived : public Base
{
virtual void foobar() override;
};
代替:
struct Base
{
void foobar();
};
struct Derived : public Base
{
void foobar();
};
什么时候不需要动态/运行时多态?如果是这样,为什么?
谢谢 .
1 回答
库/程序应该只支持有意义的东西,如果你不打算/你想禁止类
Derived
可能替代Base
类型的对象,那么你根本不应该提供这种可能性 .使用
class Derived : public Base
,您可以提供多态性,如果您提供多态性,它应该表现得像预期的那样 . 提供一个与基类同名但不覆盖它的成员显然是不可预期的,并且在这样做时你应该有充分的理由和良好的文档 .如果您不想提供多态性,您可以继承
private
或者您可以撰写: