我最近才知道,在 C++ 中,纯虚函数可以有一个主体。
这些功能的实际用例是什么?
原文由 missingfaktor 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最近才知道,在 C++ 中,纯虚函数可以有一个主体。
这些功能的实际用例是什么?
原文由 missingfaktor 发布,翻译遵循 CC BY-SA 4.0 许可协议
有或没有主体的纯虚函数仅仅意味着派生类型必须提供它们自己的实现。
如果您的派生类想要调用您的基类实现,则基类中的纯虚函数体很有用。
原文由 Brian R. Bondy 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
经典的是纯虚析构函数:
你让它纯粹是因为没有别的东西可以这样做,并且你希望类是抽象的,但是你必须提供一个实现,因为派生类的析构函数显式地调用你的析构函数。是的,我知道,这是一个非常愚蠢的教科书示例,但因此它是经典之作。它一定出现在 The C++ Programming Language 的第一版中。
无论如何,我不记得曾经真正需要实现纯虚函数的能力。对我来说,这个功能存在的唯一原因似乎是它必须被明确禁止,而 Stroustrup 没有看到这样做的原因。
如果您觉得需要此功能,那么您的设计可能走错了路。