我试图用c ++继承实验。我写了以下代码:
#include <stdio.h>
class A
{
public:
virtual void foo();
};
class B: A
{
void foo();
};
void B::foo()
{
printf("Derived class");
}
void A::foo()
{
printf("Base class");
}
int main()
{
A *a= new B();
a->foo();
}
但我的错误描述为
test.cpp:在函数'int main()'中:test.cpp:26:14:错误:'A'是一个 难以接近的'B'基地
如果我将行class B: A
替换为class B: public A
,它可以正常工作。但是使用这个事实我真的不明白在什么情况下可能需要private
和protected
继承。现在对我来说没用了。