我有这个问题,不知道如何解决它。在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