gpt4 book ai didi

c++ - 类继承后不可访问

转载 作者:太空狗 更新时间:2023-10-29 19:58:43 24 4
gpt4 key购买 nike

如果您编译下面的代码,它会失败,表示类 B 在用作成员函数 func 的参数的地方是不可访问的。这是为什么?

注意:如果 D2 不继承自 D1,则错误消失,因此从 D2 继承的某种方式使 B 不可访问。

namespace myns {
class B {};
}

using namespace myns;

class D1 : B {};

class D2 : D1 {
void func(B b) {}
};

最佳答案

名称查找找到 D2::D1::B,而不是 myns::B。名称查找后,执行访问检查,发现 D2::D1::B 是私有(private)的。

命名空间是一个转移注意力的问题:如果在全局命名空间中定义了 B,则会观察到完全相同的结果。

关于c++ - 类继承后不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627191/

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