C++ 命名空间

C++ 应用程序中。例如,您可能会写一个名为 func() 的函数,在另一个可用的库中也存在一个相同的函数 func()。这样,编译器就无法判断您所使用的是哪一个 func() 函数。

因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围。

定义命名空间

命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:

为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:

name::code; // code 可以是变量或函数,name是命名空间的名字

eg:

#define _CRT_SECURE_NO_WARNINGS#include<iostream>
namespace space_test1
{typedef int T;int a = 1000;void fuc(void){std::cout << "I am space_test1 \n";}
}namespace space_test2
{typedef double T;int a = 100;void fuc(void){std::cout << "I am space_test2\n";}
}
int main()
{//通过命名空间的不同,可以使用相同的函数,变量,类型space_test2::T high = 1.1;space_test1::T age = 25;space_test2::fuc();space_test1::fuc();std::cout << "high=" << high << std::endl;std::cout << "age="<< age<<std::endl;std::cout << "space_test1::a=" << space_test1::a << std::endl;std::cout << "space_test2::a=" << space_test2::a << std::endl;system("pause");return 0;
}

using 指令

您可以使用 using namespace 指令,这样在使用命名空间时就可以不用在前面加上命名空间的名称。这个指令会告诉编译器,后续的代码将使用指定的命名空间中的名称。

为什么我们不推荐using namespace  ...的做法:

命名空间使用这样直接的声明,破坏了它想要解决的同名函数,变量,类等问题,虽然在不引起二义性的情况下,我们会方便一些,因为可以少输入几个字符,但是,在不能保证是否有相同函数,变量,类的情况下,还是使用命名空间前缀更合适。

转载于:https://www.cnblogs.com/yangguang-it/p/9612938.html

c++命名空间---namespace相关推荐

  1. C++中的命名空间namespace

    1.Cpp中的命名空间 假设这样一种情况,当一个班上有两个名叫Zara的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等.同样的情况, ...

  2. PHP 命名空间(namespace)

    2019独角兽企业重金招聘Python工程师标准>>> PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Ja ...

  3. PHP命名空间(Namespace)的使用详解(转)

    对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...

  4. 为 Vue3 学点 TypeScript, 命名空间(namespace)是什么?

    往期目录 第一课, 体验typescript 第二课, 基础类型和入门高级类型 第三课, 泛型 第四课, 解读高级类型 第五课, 命名空间(namespace)是什么 什么时候要用命名空间? 如果你发 ...

  5. php命名空间 动态 new,PHP命名空间(namespace)的动态访问及使用技巧_php实例

    PHP的命名空间(namespace)是PHP 5.3中加入最重要的一个新特性,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的. 一.动态访问命名空间的元素 na ...

  6. 【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )

    文章目录 命名空间简介 自定义命名空间 自定义嵌套命名空间 域作用符 命名空间 与 include 区别 命名空间定义与使用完整代码 命名空间简介 命名空间 ( namespace ) : 1.命名空 ...

  7. C++命名空间namespace

    1.namespace的作用 命名空间namespace是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的重名冲突,不同的命名空间中可以存在名字相同的标识符而不会相互干扰,防止名字污 ...

  8. 【小白学习C++ 教程】十三、C++命名空间namespace

    @Author:Runsen 文章目录 访问命名空间 嵌套命名空间 命名空间别名 任何C++程序都有声明namespace,比如下面的C++程序没有声明namespace int main() {in ...

  9. php namespace原理作用,php 命名空间(namespace)原理与用法实例小结

    本文实例讲述了php 命名空间(namespace)原理与用法.分享给大家供大家参考,具体如下: 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致 ...

  10. PHP命名空间(Namespace)的使用详解

    对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...

最新文章

  1. python语音信号处理_现代语音信号处理笔记 (一)
  2. WAL streaming (max_wal_senders 0) requires wal_level replica or logical
  3. Android:日常学习笔记(8)———探究UI开发(2)
  4. python拾遗(二)
  5. Java PrintWriter close()方法与示例
  6. python怎样显示表格数据匹配_Python根据表中每一行中的数据匹配txt文章中出现的次数,表格,每行,在,统计...
  7. Varnish——CDN加速的实现(多个后端服务器实现负载均衡、虚拟主机)
  8. Module not found: Error: Can‘t resolve ‘querystring‘ in
  9. 关于c盘清理以及前端环境配置
  10. 常用快捷键—Webstorm入门指南
  11. 【发布】Bangumi动画搜索一键跳转AniDBMyAnimeListANNTMDB和动漫花园等BT站在线播放站
  12. c语言汇率转换代码_原生JS实现汇率转换功能代码实例
  13. 搞笑git 程序员改bug_这些神奇又搞笑的bug,真的让程序员万万没想到!
  14. c语言 快排,C语言 快排函数
  15. 查询当前数据库名、用户名、数据库服务器IP、端口、数据库版本信息。
  16. 目录中的pwd、cd及ls命令
  17. python爬虫网易云音乐最热评论并分析_网易云音乐热门评论api分析
  18. Albumentation库 bbox使用案例代码
  19. 同花顺_知识_看盘技法
  20. 最新iApp源码小易工具箱源码+功能超级多

热门文章

  1. php serialize和json_encode哪个更快_世界 10 大编程语言,Java 不是第一,PHP 才第五...
  2. 一篇文章看懂@Scheduled定时器/@Async/CompletableFuture
  3. LeetCode算法入门- Search Insert Position -day19
  4. java 跨类 调用 model_Model.java中的这两个方法,为什么不能在子类中调用,或者包内调用也行啊。...
  5. (模拟+floyd)Saving James Bond
  6. (DFS)棋盘问题(poj1321)
  7. 做计算机工作的要专用手机吗,怎么在手机上完成工作?原来没有电脑手机还可以这样用...
  8. mysql jion 三张_mysql三张表 left join
  9. c语言设计指导实训,C语言程序设计实训指导
  10. php如何输出关联数组的值,php - 如何从PHP关联数组中获取确切的输出 - SO中文参考 - www.soinside.com...