我有一个问题,我缩小到以下代码:
class A
{
};
class B : private A
{
};
void f(A*)
{
}
void f(void*)
{
}
int main()
{
B b;
f(&b);
}
这在 gcc 4.7 中出现以下错误:
error: ‘A’ is an inaccessible base of ‘B’
我知道 A 不可访问,但我希望编译器调用 f(void*)。这种行为是正常的还是我做错了什么?或者也许它是一个编译器错误?