我遇到了一个我在网上找到的练习。 这个练习包含了我以前从未见过的“虚拟空白”。 所以锻炼含有1头文件名为plans.h如何调用虚函数void C++?
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 &)'的未定义引用,所以我的问题是你如何通过这些论据的功能是什么?
虚拟函数应该在要使用的子类上实际创建,并且不能像那样使用,所以您需要创建一个子类,填充函数然后使用它。 – Pooya
它完全没有返回 – MikeRi
您是否已将两个* .cpp文件链接到一个程序中? – aschepler