gpt4 book ai didi

c++ - 从命名空间基类虚拟继承,具有来自命名空间的私有(private)成员

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:47 24 4
gpt4 key购买 nike

为什么下面的代码示例会失败?

namespace Base {
class Base {
protected:
int x;
};

class BaseAlt {
};
}

namespace Derived {
class Derived : public virtual Base::Base {
private:
Base::BaseAlt baseAlt;
};
}

int main() {
return 0;
}

g++ 编译失败并出现以下错误

error: ‘BaseAlt’ in ‘class Base::Base’ does not name a type
Base::BaseAlt baseAlt;

为什么?

最佳答案

编译器正在解析父类“Base::Base”,它没有名为 BaseAlt 的内部类。类 BaseAlt 的完全限定名称是“::Base::BaseAlt”。需要额外的“::”来区分命名空间和类。

关于c++ - 从命名空间基类虚拟继承,具有来自命名空间的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43802200/

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