虽然人们通常认为纯虚函数缺乏实现,但某些场景允许在基类中定义它们。
在您提供的代码片段中:
class A { public: virtual void f() = 0; }; void A::f() { cout << "Test" << endl; }
函数A::f() 被声明为纯虚函数并带有实现。这是 C 语言允许的,尽管它会引发对其用途的疑问。
带有实现的纯虚函数服务于特定目的。通过在基类中提供默认实现,派生类可以:
这是一个示例:
class B : public A { virtual void f() { A::f(); // Calls the base class implementation } };
在实现中使用纯虚函数并不常见,但在场景中可能是有益的其中:
虽然 C 语言允许在基类中提供纯虚函数的实现,这不是一种常见的做法。了解此技术的目的和含义可以让您在适当的时候使用它。
以上是何时以及为什么要在 C 中实现纯虚函数?的详细内容。更多信息请关注PHP中文网其他相关文章!