This question already has answers here:
C++ inheritance - inaccessible base?
(2个答案)
3年前关闭。
首先定义一个类B1和一个派生类D1。然后,我想定义一个对B1的引用,并将其初始化为我刚刚定义的D1对象。出现错误,说“不允许转换为不可访问的基类'B1'”,我不知道为什么。
默认情况下,类的继承为
(2个答案)
3年前关闭。
首先定义一个类B1和一个派生类D1。然后,我想定义一个对B1的引用,并将其初始化为我刚刚定义的D1对象。出现错误,说“不允许转换为不可访问的基类'B1'”,我不知道为什么。
#include "std_lib_facilities.h"
class B1 {
public:
virtual void vf() { cout << "B1::vf()\n"; };
void f() { cout << "B1::f()\n"; };
};
class D1 :B1 {
public:
void vf() { cout << "D1:vf()\n"; };
void f() { cout << "D1::f()\n"; };
};
int main()
{
B1 b1;
b1.vf();
b1.f();
D1 d1;
d1.vf();
d1.f();
B1& db=d1;//error
keep_window_open();
return 0;
}
最佳答案
class D1 :B1
默认情况下,类的继承为
private
,应将其设为public
:class D1 : public B1
关于c++ - 不允许转换为不可访问的基类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47062562/
10-11 14:01