【问题标题】:Is there a way to not use an item from a namespace?有没有办法不使用命名空间中的项目?
【发布时间】:2020-06-11 16:05:45
【问题描述】:

我学会了打字

using namespace std;

在程序的开头是一个坏习惯,因为它包含了命名空间中的每一个函数。如果存在名称冲突,这可能会导致错误。

我的问题是,有没有一种方法可以指定您不想要使用哪些命名空间函数?有没有什么说法,比如

not_using std::cin;

这可以做到吗?

【问题讨论】:

    标签: c++ namespaces std


    【解决方案1】:

    您不能这样做(包括所有内容,然后选择性地排除某些内容)。

    您的选择是:

    1) 始终明确限定名称。赞std::vector<int> v;

    2) 使用using namespace std; 提取所有名称

    3) 只输入您需要的名称,例如using std::vector;,然后执行vector<int> v; - 不会提取“vector”以外的名称。

    注意:using namespace std; 不必进入全局范围并污染整个文件。如果需要,您可以在函数中执行此操作:

    void f() {
        using namespace std;
        // More code
    }
    

    这样,只有f() 会拉入其本地范围内的所有名称。 using std::vector; 等也是如此。

    【讨论】:

      【解决方案2】:

      您可以using ns_name::name; 只是您想要无限制访问的名称。

      https://en.cppreference.com/w/cpp/language/namespace

      【讨论】:

        【解决方案3】:

        不要使用全局命名空间范围,而是使用以下语法: 例如 : std::cout :

        有关更多示例,请阅读以下内容: http://www.cplusplus.com/doc/tutorial/namespaces/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-11
          • 2017-12-08
          • 1970-01-01
          • 1970-01-01
          • 2020-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多