名称空间

using 声明和using 编译指令

using 声明将特定的名称添加到它所属的声明区域中。

using std::cout;

将cout添加到声明区中,声明扣可以用cout<<代替 std::cout<<

int main()

{

  using std::cout;

  cout<<"a";

  std::cin.get();

}

using声明使一个名称可用,而using 编译指令使所有的名称都可以用。

using namespace std;

int main()

{

  cout<<"aa";

  cin.get();

}

名称空间使用原则:

1.使用已命名的名称空间中声明的变量,而不是使用外部全局变量

2.使用已命名的名称空间中声明的变量,而不是使用静态全局变量

3.如果开发了一个函数库或类库,将其放在一个名称空间中。事实上,c++当前提倡将标准函数库

   放在名称空间std中,这种做法扩展到了来自c语言中的函数。

4.仅将编译指令using作为一种将旧代码转换为使用名称空间的权宜之计

5.不要在头文件中使用using编译指令。首先,这样做掩盖了要让哪些名称可用;另外,包含头文件的顺序可能

   影响程序的行为。如果非要使用编译指令using,应将其放在所有预处理器编译指令#include之后

6.导入名称时,首选使用作用域解析运算符或using 声明方法

7.对于using 声明,首选将其作用域设置为局部而不是全局

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏余林丰

虚拟机类加载机制(2)——类加载器

《深入理解Java虚拟机》一书中将类的加载过程放到了类加载器前面一节,但在这里我想先讲“类加载器”。在上一篇类加载时机中我们用大量篇幅来讲解了类加载过程中的5个...

2166
来自专栏程序员互动联盟

android apk 防止反编译技术第二篇-运行时修改字节码

上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/3...

40511
来自专栏Vamei实验室

Python深入02 上下文管理器

上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用...

2027
来自专栏xcywt

关于 getsockname、getpeername和gethostname、gethostbyname

一、gethostname,gethostbyname的用法 这两个函数可以用来获取主机的信息。 gethostname:获取主机的名字 gethostbyna...

2065
来自专栏chenssy

【死磕Java并发】-----Java内存模型之happens-before

在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性...

1222
来自专栏C/C++基础

模板与分离编译模式

一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程成为分离编译模式。

992
来自专栏云瓣

Node.js编程之异步

异步操作 Node采用V8引擎处理JavaScript脚本,最大特点就是单线程运行,一次只能运行一个任务。这导致Node大量采用异步操作(asynchronou...

3355
来自专栏Python爬虫实战

Python指南:文件处理

哪种文件格式最适合用于存储整个数据集——二进制、文本还是XML?这严重依赖于具体的上下文。

1471
来自专栏Java帮帮-微信公众号-技术文章全总结

hibernate延迟加载详解

hibernate延迟加载详解 Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。hiber...

3173
来自专栏云计算教程系列

如何使用Grep

Grep是一个命令行实用程序,可以使用常见的正则表达式语法搜索和过滤文本。它无处不在,动词“to grep”已经成为“搜索”的同义词。它grep是一个有用的工具...

1413

扫码关注云+社区

领取腾讯云代金券