【发布时间】:2017-06-11 20:36:39
【问题描述】:
以下代码给出了错误:'B' is an inaccessible base of 'D'。
为什么会这样? B 的构造函数是公共的,这意味着它应该被 D 类继承,即使继承是受保护的/私有的。
谁能告诉我一个解决方法?当然除了公开继承。
#include <iostream>
#include <typeinfo>
using namespace std;
class B
{ int i;
public:
B() { i=1; }
int get_i() { return i; }
};
class D: private B
{ int j;
public:
D() { j=2; }
int get_j() {return j; }
};
int main()
{
B *p= new D;
return 0;
}
谢谢!
【问题讨论】:
-
感谢您的回答!您能否将其发布为答案,以便我可以检查此问题是否已解决?
标签: c++ class oop inheritance compiler-errors