【发布时间】:2012-12-07 17:03:41
【问题描述】:
为什么deriv 在deriv 中无法访问base?程序使用class deriv : public base编译。
#include <cstdio>
class base
{
};
class deriv : base
{
public:
void f(deriv, int){printf("deriv::f(deriv, int)\n");}
void f(base){printf("deriv::f(base)\n");}
};
int main()
{
deriv d;
d.f(d);
}
17: error: ‘base’ is an inaccessible base of ‘deriv’
17: error: initializing argument 1 of ‘void deriv::f(base)’
因为已经有两个人搞错了,我就加粗问:base为什么要公开继承?它只能从deriv 内部访问。
【问题讨论】:
标签: c++ inheritance