首页 > 其他分享 >3-1 命名空间

3-1 命名空间

时间:2023-03-11 23:25:02浏览次数:27  
标签:money namespace Jerry 空间 名称 命名 using

1 namespace

  • 命名空间解决了命名冲突问题

  • 大型工程中推荐直接采用域解析运算符,采用using易造成二义性

  • 不要在头文件按中使用using

  • 情形一

命名空间通常用于解决命名冲突的问题,比如在大型项目中,我们可能在两个文件中命名了两个相同名字的函数,或者变量,为了明确我们所使用的函数或变量到底是哪一个文件中的,就引入了namespace的概念。

名称空间相当于提供了一个声明区域,其使用方法如下:

namespace Jerry{
  double money;
  void get_MOney();
  int pal;
  strut well{...};
}

名称空间可以是全局的,也可以是嵌套在另一个名称空间中的,但是不可以位于代码块中。对于名称空间中名称的访问,采用域解析运算符::来实现,如

Jerry::money=12.34;
Jerry::get_Money();

但是我们每一次使用都采用上述方法在有些时候会显得程序冗杂,而且编写者也会感到不耐烦,因此C++提供了两种机制来建辉对名称空间中名称的使用,即using声明和using编译指令,其中using声明将特定的名称添加到它所属的声明区域,using编译指令(using namespace)使整个名称空间可用。

using Jerry::money;//using声明
using namespace Jerry;//using编译指令

这个时候我们就明白写程序时一直所使用的using namespcae std意思就是可以使用名称空间std中的所有,例如coutcin

  • 情形二

对于using要注意不要在头文件中使用,容易造成潜在冲突。另外采用using也容易造成二义性,比如Jerry和Tom的名称空间中都有money,采用using的话就会造成冲突

using Jerry::money;
using Tom::money;

如果我们把using去掉的话,就不会出现这种情况了

标签:money,namespace,Jerry,空间,名称,命名,using
From: https://www.cnblogs.com/dreamer-q/p/17206492.html

相关文章

  • SQL—将查询后的列重新命名
    用update函数不得行,会报错。将查询后的列重新命名用update可能没有考虑到普适性的问题,针对性太强。(maybe)题解用的是起别名关键字as(以下是牛客上的题解)selectdevice_id......
  • 使用malloc创建空间是否需要对返回值进行强制转换
    先说结论,对是malloc()函数的返回值是否进行强制转换取决于程序的编译环境。在C中,强制转化是在画蛇添足;在C++中强制转换是必须的。如果说在C环境和C++环境之间进行移植,建议......
  • T卡无法重命名
    先查看LOW_COST_SUPPORT以及CFG_MMI_SLIM_FILE_MANAGER是否打开,如果已打开,则为slimFMGR,slimFMGR默认不支持T卡重命名,请请将Fs_internal_def.h(fs\common\include)中......
  • InnoDB建表与表空间
    InnoDB建表与表空间前言:数据在数据库中以磁盘和内存两种方式存在,内存中的数据是为了提升读写的速度,最终所有数据都会刷到磁盘中,而数据库是如何对表的空间进行管理的呢?本篇......
  • AP5160 LED 2.5-100V 7.5A 降压恒流驱动IC 效率高 省空间
    产品描述AP5160是一款效率高,稳定可靠的LED灯恒流驱动芯片,内置高精度比较器,固定关断时间控制电路,恒流驱动电路等,特别适合大功率LED恒流驱动。AP5160采用SOT23-6封装......
  • 2023.03.11.命名空间
    c++命名空间为了区分不同库中相同名称的函数、类、变量等命名空间的定义使用关键字namespace,后跟命名空间的名称,如下所示:namespacenamespace_name{//代码声明}为......
  • [第五空间 2021]yet_another_mysql_injection
    [第五空间2021]yet_another_mysql_injectionF12查看源代码发现?source提示,<?phpinclude_once("lib.php");functionalertMes($mes,$url){die("<script>alert('......
  • Mongodb存储二进制文件GridFS空间复用测试
    Oracle可以存储二进制文件,测试后发现lob字段再数据delete后表空间不能被复用,考虑将数据存储在mongodb中,mongodb存在GridFS,测试GridFS是否也存在相同的情况mongofiles命令介......
  • 一个变量命名规范的问题引起的劳师动众
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【Wayne.Wu】问了一个Python基础的问题,这里拿出来给大家分享下。一看文字这么多,感觉还是挺复杂的,都有点让人头......
  • 第1节 度量空间,n维欧式空间
    掌握距离的定义和n维欧式空间中的距离. 掌握邻域的定义和性质.掌握利用距离和邻域两种方式给出的收敛的定义,理解n维欧式空间中收敛的等价条件.掌握有界点集和区间的定......