我有一个A类,它在构造函数中引用了B。
class A {
public:
A(B& b);
}
我有一个SubB类,它是B的子类:
class SubB : public B {
//omitted...
}
在我的代码中,我创建了一个SubB并将其传递给A:
SubB subB;
A a(subB);
但是我得到了这个编译错误:
错误:'B'是'SubB'无法访问的基础
我可以将SubB的引用传递给B吗?
谢谢。
答案 0 :(得分:1)
虽然缺少class B
的声明,但发布的代码看起来是正确的。发布更完整的代码段 - 您的问题可能是错误放置包含文件和类声明。
答案 1 :(得分:0)
是的,将派生类实例传递给采用基类引用的函数是可以的。
您的示例为我编译,但看起来不应该产生该错误 - “无法访问的基类”通常是指通过受保护或私有继承而不是公共继承扩展的内容。你能发布一个更完整的例子吗?