在C ++ / CLI中嵌套名称空间

| 我知道在C ++ / CLI中允许名称空间嵌套。所以我的问题是,如果我们有这样的事情:
...
namespace one
{
    // blah blah blah
    // ...

    namespace two
    {
        // another set of blah blah blah
        // ...
    }
}
并且我需要在命名空间两个中使用一些函数和变量,我是否使用:
one::two
要么
one.two
另一个问题是,如果我有一个类似
using namespace one;
我可以访问任何嵌套名称空间中的变量和函数,例如
namespace two
我问是因为在某些我看过(写)的程序中,有类似以下内容:
using namespace System;
using namespace System::Text;
using namespace System::IO;
System名称空间不应该覆盖System :: Text和System :: IO名称空间吗?     
已邀请:
        您需要使用
one::two::some_variable_or_function
.
运算符用于访问非静态
struct
/
class
成员。然后可以再次通过作用域解析运算符
::
访问静态成员。 如果仅使用
using System;
,则可以通过以下方式访问
System::Text
函数/变量
Text::some_function_or_variable
using
父名称空间并不意味着导入所有子名称空间。     
         是的,您需要使用ѭ15而不是ѭ16来访问嵌套名称空间中的符号。 如果仅使用
namespace one;
,则不会自动访问嵌套名称空间。您必须使用
two::
例:
namespace one
{
    int i;

    namespace two
    {
        int j;
    }
}
如果您使用:
using namespace one;
您的代码如下所示:
i = 1;
two::j = 2;
如果您使用:
using namespace one;
using namespace one::two;
您的代码如下所示:
i = 1; //Compile fails if no \"using namespace one\".
j = 2;
    
           一二      要么      一二 您需要使用一个::两个。一。二是Java中包访问的语法   另一个问题是,如果我有一个   像这样的陈述      使用名称空间一;      我可以访问变量吗?   任何嵌套名称空间中的函数   喜欢      命名空间二 不,您可以将它们用作
two::
而不是
one::two::
  我问是因为在某些程序中   看过(和写过),   就像是:      使用名称空间系统;   使用名称空间System :: Text;   使用名称空间System :: IO;      System名称空间不应该   涵盖System :: Text和System :: IO   命名空间? 不,他们不一样。您必须指定每个子命名空间的用法。     
        通常,仅在引用实例成员时才使用点,在其他位置均使用ѭ10。因此,要访问名称空间
two
中的内容,您将其称为
one::two::whatever
。 至于
using namespace System;
,它将从
System
命名空间中导入内容。
System::IO
System::Text
System
中时,不会将它们直接导入当前名称空间。 AFAIK您可以说“ѭ29”,然后将嵌套命名空间中的类称为“ѭ35”。但是,如果使用一堆命名空间,那将很快造成混乱。     
        1)一::二 2)
using
父名称空间不会自动扩展任何嵌套的名称空间。     

要回复问题请先登录注册