一个类可以共享一个命名空间的名称吗?

2022-01-14 00:00:00 class symbols namespaces c++

以下 C++ 代码有效吗?

Is the following C++ code valid?

namespace Foo
{
    class Bar
    {
        // Class code here.
    };
}

namespace Foo
{
    namespace Bar
    {
        void SomeFunction();
        {
            // Function code here.
        }
    }
 }

也就是说,可以有一个与类同名的命名空间吗?

In other words, can there be a namespace with the same name as a class?

推荐答案

你不能有你的问题的安排,因为没有办法消除 Bar 的歧义.

You cannot have the arrangement you have in your question because there is no way to disambiguate Bar.

我的编译器说:

error C2757: 'Bar' : a symbol with this name already exists and therefore this name cannot be used as a namespace name

相关文章