首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现不明确的纯虚方法

如何实现不明确的纯虚方法
EN

Stack Overflow用户
提问于 2018-07-24 05:09:28
回答 1查看 150关注 0票数 2

我想使用Base::push在我的派生类型Derived中实现一个纯虚方法IPusher::push。但是,Derived有自己的不同签名的push方法(是的,我两个都需要)。

代码语言:javascript
复制
class Base
{
public:
  void push(A);
};

class IPusher
{
public:
  virtual void push(A) = 0;
}:

class Derived : public Base, public IPusher
{
public:
  using Base::push;
  void push(B);
};

这无法编译,并抱怨virtual void IPusher::push(A)Derived中是纯的。

首先,我尝试添加override,主要是为了查看错误是否不同

using Base::push override;

这抱怨说,;应该在override之前

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 05:24:01

您可以像这样实现您的可疑想法:

代码语言:javascript
复制
class Derived : public Base, public IPusher
{
public:
    void push(A a) override
    {
        // implement in terms of Base::push(A)
        Base::push(a); 
    }

    void push(B);
};

重新思考你的设计,或者在这里咨询一些建议:https://softwareengineering.stackexchange.com/questions/tagged/c%2b%2b

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51487276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档