首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++中的受保护类继承

C++中的受保护类继承
EN

Stack Overflow用户
提问于 2016-10-05 14:50:26
回答 1查看 119关注 0票数 1

下面的代码给了我一个错误,即'A‘是'B’的一个不可访问的基,我不知道为什么:

代码语言:javascript
运行
复制
class A {};
class B : protected A {};
A foo( A a ); 
///
B b; 
foo(b);

对此的任何解释都很感激。

编辑:我想我只是对受保护的继承的性质感到困惑。我认为这意味着任何派生类(在本例中为A)都可以继承其变量及其函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 15:02:43

继承受保护父类的类可以访问它,否则被认为是私有的:

代码语言:javascript
运行
复制
class A {};
class B : protected A {};
A foo(A a) { return a; };
class C : public B {
public:
    A foo(C c) { return c; };

};

int main() {
    B b;
    //foo(b); // Can't implicitly convert, A is protected (might as well be private from this line's perspective)
    C c;
    A a = c.foo(c); // class C can get A
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39877256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档