小编Pai*_*sco的帖子

从纯虚类(A)派生的指针无法访问纯类(B)的重载方法

考虑我有两个纯虚拟类,一个派生自另一个,一个具体类派生自最后一个:

#include <iostream>
#include <string>

class Abstract1
{
public:
    virtual ~Abstract1() { };
    virtual void method(int a) = 0;

protected:
    Abstract1() = default;
};

class Abstract2: public Abstract1
{
public:
    virtual ~Abstract2() { };
    virtual void method(char c, std::string s) = 0;

protected:
    Abstract2() = default;
};

class Concrete : public Abstract2
{
public:
    void method(int a) override
    {
        std::cout << __PRETTY_FUNCTION__ << "a: " << a << std::endl;
    }

    void method(char c, std::string s) override
    {
        std::cout << __PRETTY_FUNCTION__ …
Run Code Online (Sandbox Code Playgroud)

c++ pure-virtual name-hiding c++11

5
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

c++11 ×1

name-hiding ×1

pure-virtual ×1