gpt4 book ai didi

c++ - protected 继承 - 为什么不允许某个命令

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:02 24 4
gpt4 key购买 nike

假设我有以下代码:

class A
{
public:
void foo() const {}
};

class B : protected A
{
public:
void print() const
{
foo();
}
};

void main()
{

B b;
b.print();
b.foo();
}

现在,通过阅读 Difference between private, public, and protected inheritance ,我得出结论,在 protected 继承的情况下,基类的每个公共(public)成员(就此而言 - 类 A)都可以在派生类(类 B)中访问。

但是,我不明白为什么在这种情况下不允许命令 b.foo();,因为根据 protected 继承规则,它显然似乎是允许的。

最佳答案

您正在尝试从 main() 的范围访问 B::foo()。由于 foo 在这种情况下不公开,因此是不允许的。

关于c++ - protected 继承 - 为什么不允许某个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com