下面的简单的例子会产生一个编译错误,因为我无意中使用私有继承:指向基础类和私有继承
main.cpp中:21:错误:“A”是B的”不可访问的基“
class A
{
};
class B : /*ups forgot that -> public*/ A
{
};
int main(int , char *[])
{
A* test = new B;
return 0;
}
你能不能帮我解释一下究竟是在基类交通不便,为什么需要从B*
到A*
转换?
[什么是访问说明?我应该继承与私人,保护或公共?](http://stackoverflow.com/questions/5447498/what-are-access-specifiers-should-i-inherit-with-private-protected-or-public/%5d )对你来说是一个很好的阅读。 –
也这个链接也许有用http://www.gotw.ca/publications/mill06.htm –