我有這個問題,不知道如何解決它。在C++中創建派生抽象類的實例
假設我有這些基類:
class ValueBase
{
private:
int base_value;
public:
int GetValue();
void SetValue(int val);
virtual ValueBase* Meet(ValueBase* const a, ValueBase* const b) = 0;
}
class NodeBase
{
private:
ValueBase* base_nodeValue;
public:
bool AddValue(int val);
}
和派生類:
class Value : public ValueBase
{
public:
Value* Meet(ValueBase* a, ValueBase* b) override;
}
有沒有辦法在方法AddValue
在NodeBase
類創建Value
類的實例?我知道我應該可以製作純虛擬的AddValue
,並在NodeBase
的派生類中實現它,但有沒有可能在沒有此選項的情況下執行此操作?我可以使用例如模板方法或可能回調方法Value
將構建該對象?或者這樣做太邪惡了嗎?
編輯: 我沒有在NodeBase
類
'bool AddValue(int val){base_nodeValue = new Value; '繁榮,完成。 –
對,我錯過了一個捕獲,請參閱編輯。 – benderto
難道你不能正向聲明'Value',或者包含正確的頭文件以便在'NodeBase'中使用它嗎? – BlackDwarf