这是我的代码 -
#include<iostream>
using namespace std;
class base
{
public:
void sid()
{
}
};
class derived : private base
{
public:
void sid()
{
}
};
int main()
{
base * ptr;
ptr = new derived; // error: 'base' is an inaccessible base of 'derived'
ptr->sid();
return 0;
}
这会产生编译时错误。
error: 'base' is an inaccessible base of 'derived'
既然编译器会尝试调用基类sid()
,为什么会出现这个错误?有人可以解释一下吗?
最佳答案
我怀疑问题是你不能将派生指针转换为基指针,因为继承是私有(private)的。
关于c++ - 为什么派生*到基*之间的转换会因私有(private)继承而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674876/