正在初始化.cpp文件中的虚拟函数

Initializing Virtual Functions in .cpp files

本文关键字:虚拟 函数 文件 初始化 cpp      更新时间:2023-10-16

我已经了解了如何从.h文件初始化函数,并且知道在声明我所做的函数时调用virtual

.h file

class Stuff{
public:
    virtual void dostuff(double x);
};

但是,当我尝试初始化.cpp文件中的函数时,我总是会出现红线错误。

.cpp file

Stuff:: dostuff(double x) = 0;

这给了我一个"Stuff::dostuff"可能不会在其类之外重新声明。

void dostuff(double x) = 0;

给我函数"dostuff"可能未初始化。我将dostuff.h文件包含在.cpp文件中。我的问题是如何正确初始化.cpp文件中的虚拟函数?

但是,当我尝试初始化.cpp文件中的函数时,我总是会出现红线错误。

不能在C++中初始化函数。您只能声明和定义它们。

您已经在类定义的主体中声明了函数。如果你想定义函数,你需要使用:

void Stuff::dostuff(double x) { ... }

如果你想制作一个纯虚拟函数,你必须在类中声明时将其声明为零:

virtual void dostuff(double x) = 0;

您不能重新声明它。