在问之前,我曾参考过这个较旧的问题。但我仍有疑问。
struct B1 {
virtual void fun () = 0;
};
struct B2 {
void fun () { cout<<"B2::fun()\n"; }
void fun (int i) {}
};
struct D : B1, B2 {
using B2::fun; // This line doesn't help
};
int main ()
{
B1 *pB1 = new D; // Error: cannot allocate 'D' because 'B1::fun()' is abstract
pB1->fun();
}
pure virtual
C++ 标准不接受继承的成员函数来解析机制的任何原因?- 为什么
using
关键字无助于解决此错误?(编译器:linux-64 g++) - 哪个函数用于
using
关键字,B2::fun()
或B2::fun(int)
?(该行没有歧义)