现有一个程序如下:
class A
{
public:
void f()
{
cout << "A::f()";
}
};
class B
{
public:
void f()
{
cout << "B: f()";
}
void g()
{
cout << "B: g()";
}
};
class C : public A, public B
{
public:
void g()
{
cout << "C::g()";
}
void h()
{
cout << "C::h()";
f(); //语句1
}
};
void main()
{
C obj;
obj.f(); //语句2
obj.A::f(); //语句3
obj.B::f(); //语句4
obj.g(); //语句5
}
则编译时会产生错误的语句有 AB
A语句1 //二义性
B语句2 //二义性
C语句3
D语句4
E语句5 //继承 隐藏了