我在网上发现了一个练习。
这项练习包括我从未见过的“虚拟虚空”,它是如何运作的。
因此,练习包含1个名为plans.h的头文件。
namespace plans {
class HumanActions {
public:
virtual void goTo() { }
virtual void haveANiceColdBeer() { }
};
void applyPlan(HumanActions &actions);
}
和一个cpp文件
#include "Plans.h"
using plans::HumanActions;
using plans::applyPlan;
void
plans::applyPlan(HumanActions &actions) {
actions.goTo();
actions.haveANiceColdBeer();
}
我试图通过运行另一个主文件来运行该功能
#include "Plans.h"
using plans::HumanActions;
using plans::applyPlan;
int main() {
HumanActions actions;
applyPlan(actions);
}
不幸的是,它没有运行,并且说我未定义对`plans::applyPlan(plans::Actions&)'的引用,所以我的问题是如何传递给定参数的函数?
最佳答案
您已经在头文件中声明了“void applyPlan(HumanActions&actions)”,但尚未在任何位置定义(实现)它,这就是为什么您使用 undefined symbol 的原因。
如果在main()中,您调用了applyZombiePlan()而不是applyPlan(),则应该没问题。
关于c++ - 如何调用虚虚函数C++?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34890934/