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) 中的这一行如何被解释以导致这种行为?