最后,我们到达我们的旅程结束在继承!这是我们将对这个问题的最后一个话题。祝贺你们事先通过最难的语言的一部分!
纯虚拟(摘要)函数和抽象基类
到目前为止,所有我们所写的虚拟函数体(定义)。然而,C++允许你创建一个特殊的虚函数调用一个纯虚函数(或函数)都没有身体!纯虚函数只是作为一个占位符,是由派生类重新定义。
创建一个纯虚函数,而不是定义一个函数体,我们只需指定函数值0。
1
2
3
4
5
6
7
8
9
class Base
{
public:
const char* SayHi() { return "Hi"; } // a normal non-virtual function
virtual const char* GetName() { return "Base"; } // a normal virtual function
virtual int GetValue() = 0; // a pure virtual function
};当我们添加一个纯虚函数来我们班,我们实际上是在说,“它是由派生类来实现这个功能”。
使用一个纯虚函数有两个主要的后果:第一,与一个或多个纯虚函数的抽象基类的任何类,这意味着它不能被实例化!如果我们可以创造基础实例会发生什么:
1
2
3
4
5
int main()
{
Base cBase; // pretend this was legal
cBase.GetValue(); // what would this do?
}
本文探讨了C++中纯虚函数的概念及其在抽象基类中的应用。介绍了如何声明纯虚函数,并解释了含有纯虚函数的类无法实例化的特性。
1112

被折叠的 条评论
为什么被折叠?



