gpt4 book ai didi

在嵌套命名空间的不同级别中具有相同名称的 C++ 友元类

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:12 26 4
gpt4 key购买 nike

不确定这是否可能,但我在嵌套命名空间的不同级别中有两个同名的类,我想让更浅的类成为更深的类的 friend 。示例:

在 File1.h 中:

namespace A
{
class Foo
{
//stuff
};
}

在 File2.h 中:

namespace A
{
namespace B
{
class Foo
{
friend class A::Foo; //Visual Studio says "Error: 'Foo' is not a member of 'A'"
};
}
}

这可能吗?如果是这样,正确的语法是什么?

最佳答案

此代码放在一个文件中时编译正常(除了 ;A::B::Foo 类之后是必需的):IdeOne example .

因此,问题出在问题文本中未包含的代码中。可能 #include "File1.h" 被遗忘在 File2.h 中。

关于在嵌套命名空间的不同级别中具有相同名称的 C++ 友元类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206387/

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