C++入门1.命名空间

目录

1.为什么有命名空间?

2.namespace玩法:

        1..定义

        2..使用

1...单个使用

2...引用成员,相当于暴露在全局

3...引用整个命名空间

 思考:


1.为什么有命名空间?

//命名空间关键字:namespace

在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化, 以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

#include <stdio.h>
#include <stdlib.h>
int rand = 10;
// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决
int main()
{
    printf("%d\n", rand);
    return 0;
}
// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数”

2.namespace玩法:

        1..定义

namespace 自己想要的名字 {
    //...
    // 命名空间中可以定义变量/函数/类型
    
}
//嵌套
namespace abab {
    //...
    namespace acac {
        //...     
    }
}

namespace abab {
    //...
    // 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
    // ps:一个工程中的test.h和上面test.cpp中两个N1会被合并成一个
}

//嵌套命名空间名字相同会报错 

// 属于给自己划了一块空间,命上了名,程序结束前一直存在,每当你需要命名空间里的代码,使用它即可,

        2..使用

命名空间的代码是不能直接访问的,

1...单个使用

命名空间的名字 + 作用域限定符(::) //两个冒号就是作用域限定符

2...引用成员,相当于暴露在全局

使用using将命名空间中某个成员引入

3...引用整个命名空间

使用using namespace + 命名空间名称 引入

当出现以下情况b是多少?

 输出的是1;

为何?

编译器有默认查找顺序,就像C语言之中的全局变量的局部变量名字相同时先搜索局部一样,

顺序:

a, 局部

b, 全局

c, 引用了的命名空间

//ps,单个引用,好似把命名空间的引用单独暴露在全局,会和全局变量起冲突,

 思考:

        

代码一,包含了iostream,io流这个头文件

代码二,是命名空间的引用,命名空间的名字是std,

如果本文章对你有用,请点点收藏支持一下,万分感谢!!

相关推荐

  1. C++(1) 命名空间

    2024-03-30 10:06:04       34 阅读
  2. C++基础入门命名空间,函数,引用)

    2024-03-30 10:06:04       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 10:06:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 10:06:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 10:06:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 10:06:04       18 阅读

热门阅读

  1. TCP的keepalive与HTTP的keep-alive的区别

    2024-03-30 10:06:04       19 阅读
  2. 实验十 枚举问题(过程模拟)

    2024-03-30 10:06:04       17 阅读
  3. YOLOv8参数详解

    2024-03-30 10:06:04       30 阅读
  4. sql中如何添加数据

    2024-03-30 10:06:04       19 阅读
  5. go中匿名函数的使用

    2024-03-30 10:06:04       21 阅读
  6. 如何解决EventSource 删除单词的前置空格问题

    2024-03-30 10:06:04       16 阅读
  7. 缺失的第一个正数 - LeetCode 热题 17

    2024-03-30 10:06:04       16 阅读
  8. hanlp的使用

    2024-03-30 10:06:04       14 阅读