案例背景:你写了一些代码,其中有一个函数名为xyz(),同时另一个可用库里也有一个同名的函数xyz(), 编译器没有办法知道你指的是哪个版本的xyz().

解决办法:A namespace is designed to overcome this difficulty and is used as additional information to differentiate similar functions, classes, variables etc. With the same name available in different libraries. Using namespace, you can define the context in which are defined. In essence, a namespace defines a scope.

1. Defining a Namespace:(定义一个命名空间)

namespace namespace_name{//code declarations}

To call the namespace-enabled version of either function or variable, prepend the namespace name as follows:

namespace_name::code;

2. The using directive: 使用using

You can also avoid prepending of namespaces with the using namespace directive, This directive tells the compiler that the subsequent code is making use of names in the specfied namespace. (我们总想偷懒,不希望每次调用函数或者类时,前面都要加上前缀namespace_name::,于是可以使用using指令,如下例所示,那么程序中调用的函数或类,默认来自std命名空间。)

example: using namespace std;

3. Discontiguous Namespaces:不连续的命名空间

A namespace can be defiend in several parts and so a namespace is made up of the sum of its separately deifned parts. The separate parts of a namespace can be spread over multiple files.

4. Nested Namespaces:内嵌的命名空间

namespaces can be nested where you can define one namespace inside another namespace as follows:

namespace namespace_name1{

//code declarations

namespace namespace_name2{

//code declarations

}

}

C++ namespace功能总结的更多相关文章

  1. asp.net 2.0中新增的web.config的默认namespace功能 (转)

    看上去这个题目比较长,但实际上,我在看资料时发现,这就是说,在asp.net 2.0中,只需要在web.config里定义你要用的那些namespace,则在aspx页面中就不需要再象1.1那样,用 ...

  2. 对 JavaScript 下 namespace 功能的简单分析

    前些天在剥离 百度随心听 的播放器引擎时,看到了一个namespace方法,觉得新奇,当然只是对于我自己而言,我入门js不久,经验尚浅.之前看到网易还是新浪还是什么什么网站来着,也是用类似这种东西的, ...

  3. 理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  4. ubuntu环境下安装docker遇到的坑

    ubuntu安装docker的前提条件是: 1. Linux 的内核版本在 3.10 或以上: 2. linux 内核要开启 cgroup 和 namespace 功能 可以执行命令:uname –a ...

  5. docker 基础 之安装

    一.安装 系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10. CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功(如 overlay ...

  6. composer设计原理与基本用法

    原文地址:http://blog.turn.tw/?p=1039 COMPOSER進階原理:PHP命名空間與PSR-0   http://blog.turn.tw/?p=1122 Moving PHP ...

  7. Centos上安装配置docker(命令集)

    导出镜像存储: docker save house/redis:3.2 > redis_img.tar   (也可以使用镜像ID) 导入镜像存储: docker load < redis_ ...

  8. docker namespaces

    https://docs.docker.com/engine/security/userns-remap/#prerequisites 注:以下验证环境为centos7.5 docker 18.09. ...

  9. docker原理

    Docker原理11 Linux Namespace 11 AUFS文件系统17 重新理解Docker的各种命令18 Docker原理 Linux Namespace docker是一个容器引擎,容器 ...

随机推荐

  1. [MFC美化] SkinMagic使用详解2- SkinMagic常用函数介绍

    SkinMagic常用函数介绍 (1)InitSkinMagicLib函数:初始化SkinMagic int InitSkinMagicLib( //初始化SkinMagic工具库 HINSTANCE ...

  2. PyQt5+python3+pycharm开发环境配置

    1.下载PyQt https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.6/PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x32- ...

  3. Openjudge-NOI题库-二维数组回形遍历

    题目描述 Description 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组.如图所示:  输入输出格式 Input/ou ...

  4. 将stack翻译成"堆栈"实在是误人子弟

    也不知道从何时起,也不知道是哪个"教授"还是"老师",将stack翻译成堆栈(据说台湾叫做"堆叠").窃以为,这种翻译实在是误人子弟(题外话 ...

  5. app兼容性测试的几种方案

    1.统计自己的应用被使用的数据 通过友盟或Flurry等在应用嵌入,得到应用在哪些机型上被安装了,排名前十的就是测试的重点机型 2.可参考兼容性测试平台的测试结果 比如Testin或百度的MTC平台, ...

  6. 跑github上的Symfony项目遇到的问题2

    最近学习symfony框架,下载了大量的github上的别人的项目,要想跑起别人的项目,总结了以下几个步骤: 第一, 克隆一份代码; 第二,安装依赖,前提是安装了composer, 1:在你下载的项目 ...

  7. 跑github上的Symfony项目遇到的问题

    Loading composer repositories with package information Installing dependencies (including require-de ...

  8. Python学习笔记——基础篇【第五周】——random & time & datetime模块

    random模块 随机数 mport random print random.random() print random.randint(1,2) print random.randrange(1,1 ...

  9. Struts2 网站上来多少人

    strut.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBL ...

  10. redhat nginx 启动脚本

    #!/bin/sh # # nginx - this script starts and stops the nginx daemin # # chkconfig: - 85 15 # descrip ...