gpt4 book ai didi

c++ - 类型a必须实现继承的纯虚方法b

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:07 26 4
gpt4 key购买 nike

我想使用抽象类在 C++ 中模拟接口(interface)原型(prototype)。但在 Eclipse IDE 中,我得到“此行有多个标记 - 'Handler' 类型必须实现继承的纯虚方法 '处理程序::设置下一步'"

我的问题是为什么会这样?

处理程序.h

class Handler {
public:

virtual void setNext(Handler &next) = 0;
Handler();
virtual ~Handler();
virtual void process() = 0;
public:

Handler *nextInChain;

};

处理程序.cpp

#include "Handler.h"
Handler::Handler(){
}
Handler::~Handler(){
}

Oracle.h

#include "Handler.h"
class Oracle : virtual public Handler {
public:
Oracle();
virtual ~Oracle();
virtual void process();
virtual void setNext(Handler &next);
private:

};

甲骨文.cpp

#include "Oracle.h"

Oracle::Oracle(){
Handler AQUI;//AQUI I get Multiple markers at this line
//- The type 'Handler' must implement the inherited pure virtual method
//'Handler::setNext'
}

Oracle::~Oracle(){
}

void Oracle::process(){
}

void Oracle::setNext(Handler &next){
}

最佳答案

这是不正确的:

Handler AQUI;

你不能实例化一个抽象类。

您想要做的是定义一个指向 Handler 的指针,并为其分配来自子类(如 Oracle)的有效对象的地址。

关于c++ - 类型a必须实现继承的纯虚方法b,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com