C++入门篇一
双冒号(::)的作用:作用域运算符,全局作用域
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++入门篇一的更多相关文章
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- 一个App完成入门篇(七)- 完成发现页面
第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
- 转:OSGi 入门篇:模块层
OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...
- 转:OSGi 入门篇:生命周期层
OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...
- 【three.js详解之一】入门篇
[three.js详解之一]入门篇 开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- Unity3D大风暴之入门篇(海量教学视频版)
智画互动开发团队 编 ISBN 978-7-121-22242-9 2014年2月出版 定价:79.00元 328页 16开 编辑推荐 长达800分钟的高清教学视频,手把手教会初学者 数个开发案例 ...
随机推荐
- 深入剖析Redis系列: Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- 2015年旧闻 CNNIC发布伪造CA证书
谷歌称CNNIC发布伪造CA证书 2015-3-24 15:6:17 | 作者: 月光 | 分类: 业界动态 | 评论: 64 | 浏览: 6755 根据谷歌官方安全博客报道和Mozilla官方博 ...
- PHP artisan migrate 报错显示 could not find driver ,怎么办?
记录下自己的错误 一. 1.原因是没有pdo扩展导致的, 2.解决办法:打开php.ini,然后去掉以下两行代码之前的分号(:)即可.如下: extension=php_pdo_firebird.dl ...
- Shell命令-文件及目录操作之ls、cd
文件及目录操作 - ls.cd 1.ls:列出目录的内容及其内容属性信息 ls命令的功能说明 ls命令用于列出目录的内容及其内容属性信息. ls命令的语法格式 ls [OPTION]... [FILE ...
- STS启动springboot项目,加载不了resources下的配置文件的问题
从这篇博客的评论中找到了解决方案 答案: eclipse的设置中,它默认是不包括resources下的文件的,把它改了就行了 原本用idea没这些事的,不过idea旗舰版到期了,社区版的话,对前端又没 ...
- redis持久化和主从同步
redis持久化rdb与aof 简介 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的 ...
- mysql慢查询日志按天切割归纳
问题描述: mysql开启慢查询功能,再正常不过,那么存在这样一种情况:慢查询写入的文件位置和文件名是指定好的,如果慢查询时间设定严苛,不出意外,记录慢查询的单个文件大小会日益增大,几十兆或者上百兆, ...
- plink合并文件并更新SNP位置(merge file, update SNP position)
一.合并文件 plink合并文件需要用到“merge”参数 如果是ped和map格式文件,则用以下命令: plink --file data1 --merge data2.ped data2.map ...
- Burnside引理的感性证明
\(Burnside\)引理的感性证明: 其中:\(G\)是置换集合,\(|G|\)是置换种数,\(T_i\)是第\(i\)类置换中的不动点数. \[L = \frac{1}{|G|} * \sum ...
- (二分查找 拓展) leetcode 34. Find First and Last Position of Element in Sorted Array && lintcode 61. Search for a Range
Given an array of integers nums sorted in ascending order, find the starting and ending position of ...