gpt4 book ai didi

C++ 命名空间问题

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

我有三个类,它们都来自不同的命名空间,如下所示:

A类.h

namespace outer
{
namespace inner
{
class ClassA
{
....
};
}
}

B类.h

namespace inner
{
class ClassB
{
...
};
}

类C.h

#include <classB.h>

namespace outer
{
namespace inner2
{
using inner::ClassB; // error here, says outer::inner2::ClassB has not been declared.

class ClassC
{
....
};
}
}

我卡在这个问题上了,请帮我解决这个问题。

最佳答案

你需要

using ::inner::ClassB;

因为在 namespace outer 中,inner 有 2 个选项

  • ::inner - 全局命名空间
  • ::outer::inner - outer 命名空间

默认情况下,using inner::ClassB; 将尝试从 outer::inner 导入 ClassB

关于C++ 命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11227727/

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