c++ Prime读书笔记4(using名字空间)
来源:互联网 发布:网络推广公司哪个好 编辑:程序博客网 时间:2024/04/29 21:20
在<string>头文件中的所有声明都包含在名字空间std 中正如第1 章所提到的我们可
以用在#include 预处理器指示符后面加上using 指示符的办法使C++头文件<string>中
的在名字空间std 中声明的组件对于我们的程序都是可见的
#include <string>
using namespace std;
// ok: string 是可见的
string current_chapter = "A Tour of C++";
为了使在名字空间std 中声明的名字在我们的程序中可见指示符using 通常被看作是一种比较差的选择方案在上面的例子中指示符using 使头文件<string>中声明的并且位于名字空std 中的所有组件在程序文本文件中都是可见的这又将全局名字空间污染问题带回来了而这个问题正是std 名字空间首先要努力避免的它增加了C++标准库组件的名字与我们程序中声明的全局名字冲突的机会
using 使我们能够引用到隐藏在名字空间std 中的名字string 我们可以使用限定的名字例
如
#include <string>
// ok: 使用限定的名字
std::string current_chapter = "A Tour of C++";
或如下使用using 声明
#include <string>
using std::string;
// ok: 上面的using 声明使string 可见
string current_chapter = "A Tour of C++";
为了使用名字空间中声明的名字建议使用带有精细选择功能的using 声明代替using 指示符这也正是本书的代码示例中没有出现using 指示符的另一个原因理想情况下每一个代码示例对它所用到的每个库组件都应该有一个using 声明为了限制例子代码的长度也因为本的许多例子是在不支持名字空间的情况下被编译的所以using 声明就没有显示出来
在下面的例子中fp 是一个float 型的数据对象而fp2 是一个指向float 型对象的指针
float fp, *fp2;
为清楚起见最好写成
string *ps;
而不是
string* ps;
有可能发生的情况是当程序员后来想定义第二个字符串指针时他会错误地修改定义
如下
// 喔: ps2 不是一个字符串指针
string* ps, ps2;
- c++ Prime读书笔记4(using名字空间)
- C++Prime读书笔记4
- c++Prime 读书笔记8 (bitset)
- C++编程规范之名字空间与模块(读书笔记)
- 读书笔记-Thinking in C++-第10章 名字空间namespace
- C++——名字空间
- c++ Prime读书笔记5(c风格字符串和string)
- c++ Prime读书笔记6(c++:const 操作小结)
- 《Programming: Principles and Practice Using C++》读书笔记(一)
- C 语言中的名字空间(namespace)
- C++程序设计语言读书笔记-C8 - 名字空间和异常
- 创建名字空间(namespaces)
- 《C++Primer》读书笔记--命名空间
- 名字空间
- 名字空间
- 名字空间
- 名字空间
- 名字空间
- c++ Prime读书笔记3(strlen)
- 使用ajax遇到的一些小问题
- 数据结构绪论中的几道题
- 最大堆的实现
- 两条合并一条,求最简单的解法
- c++ Prime读书笔记4(using名字空间)
- 两表累加时的问题
- 对称序穿线树的实现
- two Eclipse db plugin
- 工业控制自动化体系统架构
- 如何把excel导入到数据库中!
- 用VC++写ISAPI的一点经验
- 引用/使用公告
- 备份一段代码,不牛X