双冒号(::)的作用:作用域运算符,全局作用域

void   LOL::game1(){//在LOL命名空间下面的game1
cout << "LOL游戏开始" << endl; }

namespace命名空间:
用途解决名称冲突问题
必须在全局作用域下声明
命名空间可以放入函数,变量,结构体,类
命名空间可以嵌套命名空间
命名空间是开放的,可以随时加入新的成员
匿名命名空间

1.嵌套命名空间

namespace  A {
int m_a = 10;
namespace B {
int m_b = 100;
}
}
cout << "嵌套命名空间" << A::B::m_b << endl;//运行A房间里面B房间里面的m_b

2.匿名命名空间:

如果写了没有命名的命名空间,相当于是写了static  int  m_a,static  int  m_d,只能是在当前文件内使用

//如果写了没有命名的命名空间,相当于是写了static  int  m_a,static  int  m_d,只能是在当前文件内使用
namespace {
int num1 = ;
}
cout << "匿名空间下的" << num1 << endl;//直接是可以调用匿名空间下的num1,不用加::

3.命名空间可以起别名:

namespace  new1 {//命名空间new1,
int new_num = ; }
namespace  old = new1;//给这个命名空间起别名,重新复制new1命名空间
cout << "别名下的num" << old::new_num << endl;

using声明和using编译指令:

using  namespace  std;打开std的命名空间

1.打开多个房间,要指出是哪一个房间才可以

namespace  tets02{//声明两个房间
int num01 = ;
}
namespace test04 {
int num01 = ;
}

打开这个两个房间

void  test3() {
using namespace tets02;//打开这个test02这个房间,仅仅只是打开了这个房间,还是就就近原则
using namespace test04;//打开test04这个房间,如果不声明的话,无法确定num01是那个房间的
cout << "test3 num01 " << test04::num01 << endl;//在这里必须要声明是哪一个房间的num01才可以,否则无法找到
}

结果:

2.二义性,就近原则

虽然打开了房间,但是如果房间比较远的话,还是去较近的为准

namespace  tets02{
int num01 = ;
}
//void  test3() {
//int num01 = 198;
//using namespace tets02;//打开这个test02这个房间,仅仅只是打开了这个房间,还是就就近原则
//cout << "test3 num01" << num01 << endl;
//}

结果:取的是自己的num01,虽然打开了test01房间

下面报错了,打开房间test02并且使用这个num01

namespace  tets02{
int num01 = ;
}
void  tets01() {
int num01 = ;
//using声明,注意避免二义性问题
//写了using声明之后,下面这行代码说明所看到的的num01是使用了test02命名空间下面的
//但是编译器又有就近原则
//二义性
using tets02::num01;//打开房间并且使用num01,这里已经是两次声明test02房间下面的num01了
cout << "tets01 num01=" << num01 << endl;
}

C++入门篇一的更多相关文章

  1. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  2. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  3. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  4. 一个App完成入门篇(七)- 完成发现页面

    第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...

  5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  6. 转:OSGi 入门篇:模块层

    OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...

  7. 转:OSGi 入门篇:生命周期层

    OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...

  8. 【three.js详解之一】入门篇

    [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

  9. [Maven]Apache Maven 入门篇

    作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...

  10. Unity3D大风暴之入门篇(海量教学视频版)

    智画互动开发团队 编   ISBN 978-7-121-22242-9 2014年2月出版 定价:79.00元 328页 16开 编辑推荐 长达800分钟的高清教学视频,手把手教会初学者 数个开发案例 ...

随机推荐

  1. .NET 开源项目 Polly 介绍

    今天介绍一个 .NET 开源库:Polly,它是支持 .NET Core 的,目前在 GitHub 的 Star 数量已经接近 5 千,它是一个强大且实用的 .NET 库. Polly 介绍 官方对 ...

  2. oracle实例安装到 4% 不能继续安装

    较为悲催的问题, 一直不知道如何解决: 偶尔听到群里的大神提起: 今天特地拿出来分享一下: 希望大家碰到能早点解决 是CPU问题: 将cpu 核心数 改为 2的指数倍: 或者将cpu打上补丁就好了: ...

  3. 选择语句--switch

    switch语句 格式: 执行流程 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束. 最后,如果所有的case都和表达式的值 ...

  4. String Successor zoj 3490

    链接 [https://vjudge.net/contest/294259#problem/D] 题意 就是给你一个字符串,要进行n次操作 让你输出每次的字符串 操作规则: 1.如果有数字或者字母就忽 ...

  5. 开发神器之PHPstorm配置及使用

    之前文章对于PHPstorm有了简单的介绍,作为一名合格的PHPer,一定要定制一个适合自己的IDE,然后开始我们的路途吧... 1. 为不同的项目选定PHP版本 我们经常会遇到这样的场景,不同的项目 ...

  6. PHP整洁之道

    摘录自 Robert C. Martin的Clean Code 书中的软件工程师的原则 ,适用于PHP. 这不是风格指南. 这是一个关于开发可读.可复用并且可重构的PHP软件指南. 并不是这里所有的原 ...

  7. spark-MLlib之协同过滤ALS

    协同过滤与推荐   协同过滤是一种根据用户对各种产品的交互与评分来推荐新产品的推荐系统技术.   协同过滤引入的地方就在于它只需要输入一系列用户/产品的交互记录:   无论是显式的交互(例如在购物网站 ...

  8. Android——图片轮播

    Android技术——轮播功能 轮播需要什么? 答:实现图片与广告语展示.循环播发以及手动切换.支持加载本地与网络图片. 性能优化? 答:多张图片与指示器展示.自动与定时.循环播发.滑动流畅并且无卡顿 ...

  9. DAY15、模块

    一.函数的补充 1.函数回调: 提前在另一个函数中写出函数的调用,再根据实际的需求去考虑函数体的实现 def download(fn=None): print('开始下载') my_sleep(1) ...

  10. ADT SDK Manager启动时一闪而过

    原因为使用了Android Studio的绿色JRE,必须要安装安装版JDK或者JRE,绿色版JRE放在ADT目录虽然能启动ADT但是不能启动SDK Manager