正在初始化.cpp文件中的虚拟函数
Initializing Virtual Functions in .cpp files
我已经了解了如何从.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;
您不能重新声明它。
相关文章:
- C++无法定义虚拟函数 OUTER 类和头文件
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 尝试将unique_ptrs推送到向量时使用纯虚拟函数错误
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 类型擦除的std::function与虚拟函数调用的开销
- 重写虚拟函数和继承
- 用纯虚拟函数兜圈子
- 为什么使用存储在虚拟方法表中的地址调用虚拟函数的函数会返回垃圾?
- 禁止子函数调用父级的抽象(或虚拟)函数
- 无法在子类中使用虚拟函数C++
- 无法在派生对象上运行虚拟函数
- 我可以调用从 main() 覆盖的虚拟函数吗?
- 在 C++ 中将函数获取和设置为虚拟函数
- 使用在堆栈上创建的对象调用虚拟函数
- 为什么在这种情况下不调用我的虚拟函数实现?
- 在C++中使虚拟函数私有化
- 模板继承类中的虚拟函数
- 为什么构造函数的虚拟函数调用有时有效,但其他调用却无效
- doxygenc++虚拟函数和实现
- 如何从派生类函数中调用虚拟函数