我遇到了一個我在網上找到的練習。 這個練習包含了我以前從未見過的「虛擬空白」。 所以鍛鍊含有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