0
class A
{
public:
    A() {}
    void run() {};
};

class B : private  A
{
public:
    B() {}

    using A::run; (1)
    using A::A;   (2)
};

int main()
{
    //A* a = new B; // not compile (3)
    B b;
    b.run();
}

为什么我不能在 (3) 中使用多态性?即使在添加using A::A;(2)之后它也不会编译。我预计它会在添加using A::A;(2) 后与 (1) 相同,using A::run但不幸的是,它没有编译。(3) 中的这一行如何被解释以导致这种行为?

4

0 回答 0