将虚函数声明设置为零?

ack*_*ack 6 c++ oop

可能重复:
为什么纯虚函数初始化为0?

在C++中,将函数声明设置为零意味着什么?我猜它与虚函数有关,而不是在这个类中实际定义的.在我正在阅读的代码头文件中找到:

virtual void SetValue(double val)=0;
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

Cog*_*eel 12

这是一个纯粹的虚拟功能.它使得你必须派生一个类(并实现所述函数)才能使用它.


haf*_*fax 5

这在 C++ 行话中称为纯虚成员函数。正如您所猜测的,这意味着该函数不是在类中定义的,而是必须在派生类中实现。不能用纯虚成员函数实例化类,纯虚函数基本上表现得像 Java 或 C# 中的抽象方法。