编译器错误 C2387
“type”:不明确的基类
编译器无法明确解析函数调用,因为该函数存在于多个基类中。
若要解决此错误,请从继承中删除其中一个基类,或显式限定函数调用。
以下示例生成 C2387:
// C2387.cpp
namespace N1 {
struct B {
virtual void f() {
}
};
}
namespace N2 {
struct B {
virtual void f() {
}
};
}
struct D : N1::B, N2::B {
virtual void f() {
B::f(); // C2387
// try the following line instead
// N1::B::f();
}
};
int main() {
D aD;
aD.f();
}