C++学习笔记--名称空间
2014-12-11 23:01
274 查看
名称空间是为了更好的控制名称的作用域,以管理不同的类库,避免发生冲突。
1、创建名称空间
如下,使用namespace关键字创建了pers和debts两个名称空间。
名称空间可以是全局的,也可以位于另一个名称空间中,但不能位于代码块中。
分类:
(1)用户定义的名称空间(使用namespace关键字)
(2)全局名称空间 (不定义名称空间的情况下,都属于全局名称空间)
2、使用名称空间
(1)using声明
using std::cout;
using pers::Person
using声明使特定的标识符可用
(2)using编译指令
using编译指令使整个名称空间都可用。
如:
using namespace std;
using namespace pers;
注:
(1)使用using声明比使用using编译指令更安全
(2)优先使用域解析操作符(::)或using声明
(3)对于using声明,首选将其作用域设置为局部而不是全局。
1、创建名称空间
如下,使用namespace关键字创建了pers和debts两个名称空间。
#ifndef NAMESP_H_ #define NAMESP_H_ namespace pers { const int LEN = 40; struct Person { char fname[LEN]; char lname[LEN]; }; void GetPerson(Person &); void ShowPerson(const Person &); } namespace debts { using namespace pers; struct Debt { Person name; double amount; }; void GetDebts(Debt &); void ShowDebts(const Debt &); double SumDebts(const Debt arr[], int n); } #endif
名称空间可以是全局的,也可以位于另一个名称空间中,但不能位于代码块中。
分类:
(1)用户定义的名称空间(使用namespace关键字)
(2)全局名称空间 (不定义名称空间的情况下,都属于全局名称空间)
2、使用名称空间
(1)using声明
using std::cout;
using pers::Person
using声明使特定的标识符可用
(2)using编译指令
using编译指令使整个名称空间都可用。
如:
using namespace std;
using namespace pers;
注:
(1)使用using声明比使用using编译指令更安全
(2)优先使用域解析操作符(::)或using声明
(3)对于using声明,首选将其作用域设置为局部而不是全局。
相关文章推荐
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- 《C++ Primer Plus》第9章 内存模型和名称空间 学习笔记
- 【学习笔记】C++primer plus 9.内存模型与名称空间
- C++学习笔记六——内存模型和名称空间、关键字
- C++学习笔记3:内存模型和名称空间
- C++学习笔记(第9章->内存模型和名称空间)
- C++ Primer plus 学习笔记之第九章内存模型和名称空间(1)
- C++学习笔记二之4种访问名称空间std的方法
- C++学习笔记之八 复合类型---指针和自由存储空间
- C++学习小疑问:类的名称能否和命名空间的名称相同?
- C++学习笔记:高级编程:文件和流,异常处理,动态内存,命名空间
- C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:命名空间)
- C++ Primer Plus学习:第九章 内存模型和名称空间(1)
- C++学习笔记(1)——基类、派生类的对象空间
- C++学习笔记-命名空间
- C++学习笔记6--高级强制类型转换 命名空间和模块化编程 C预处理器 链接和作用域 函数模板 类模板 内联模板 容器和算法
- C++学习笔记 内存空间分配(new/delete)
- 学习笔记 06----名称空间、集合、特征
- WPF快速学习笔记三 x名称空间
- C++ Primer Plus学习:第九章 内存模型和名称空间(2)