C++学习笔记--名称空间

名称空间是为了更好的控制名称的作用域,以管理不同的类库,避免发生冲突。

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声明,首选将其作用域设置为局部而不是全局。

时间: 2024-08-07 12:24:08

C++学习笔记--名称空间的相关文章

python学习之名称空间与作用域

1.命名关键字参数(了解)及组合使用 **命名关键字参数:在定义函数时,*后定义的参数,如下所示,称之为命名关键字参数** 1.1 命名关键字参数的特点 命名关键字实参必须按照key=value的形式为其传值 def func(x,y,*,a,b): # 其中,a和b称之为命名关键字参数 print(x,y) print(a,b) func(1,2,b=222,a=111) 示例 def func(x,y,*,a=11111,b): print(x,y) print(a,b) func(1,2,

JAVA 基础知识学习笔记 名称解释

Java ee:? IDE: ? itegrity   development environment 集成开发环境 JMS:? java Message Service java   信息服务 JMX? Java Management Extensions,即Java管理扩展 JNDI:(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司 提供的一种标准的Java命名系统接口,JNDI提供统一的客户端 API,通过不同的访问提供者接口J

python学习笔记第五节(函数,名称空间,作用域)

python2中 默认存为unicode需要再字符串前加u 循环打印每一行 循环打印整个文件内容方式二下面这种同一时间取一行 先定义后执行 函数定义的时候,只检测语法错误,不执行 函数返回值,默认是元组模式return 只能返回一次 形参与实参 形参就是变量名实参就是值 打破顺序限制 经常变化的值用位置形参,值通常不变的用默认参数.默认参数通常定义成不可变类型.默认参数只在定义时被赋值一次. 可变长参数就是* 关键字参数(关键字参数指的是实参当中指定y=2,z=3等等) *等同于位置参数 函数内

《C++ Primer Plus》第9章 内存模型和名称空间 学习笔记

C++鼓励程序员在开发程序时使用多个文件.一种有效的组织策略是,使用头文件来定义用户类型,为操纵用户类型的函数提供函数原型,并将函数定义放在一个独立的源代码文件中.头文件和源代码文件一起定义和实现了用户定义的类型及其使用方式.最后,将main()和其他使用这些函数的函数放在第三个文件中.C++的存储方案决定了变量保留在内存中的事件(存储持续性)以及程序的哪一部分可以访问它(作用域和链接性).自动变量在代码块(如函数体或函数体中的代码块)中定义的变量,仅当程序执行到包含定义的代码块时,它们才存在,

C++ Primer 学习笔记_105_特殊工具与技术 --联合:节省空间的类

特殊工具与技术 --联合:节省空间的类 联合是一种特殊的类.一个 union 对象可以有多个数据成员,但在任何时刻,只有一个成员可以有值.当将一个值赋给 union 对象的一个成员的时候,其他所有都变为未定义的. 为 union 对象分配的存储的量至少与包含其最大数据成员的一样多.联合提供了便利的办法表示一组相互排斥的值,这些值可以是不同类型的. 1.定义联合 作为例子,我们可能有一个处理不同各类数值或字符数据的过程.该过程可以定义一个 union 来保存这些值: union ToKenValu

WPF之X名称空间学习

WPF的X名称空间都有什么呢?首先,盗用张图来说明: 我将就图表中的内容进行总结: 1.x:Array具有一个Iteams属性,它能暴漏一个ArratList实例,ArratList实例的内部成员类型由x:Array的Type指明. <Window x:Class="X名称空间详解.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=&quo

(转)【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)

(注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 切换空间,同局部空间.世界空间等一样,是3D图形学中众多的坐标系之一.切换空间最重要的用途之一,即法线映射(Normal Mapping).关于法线映射的细节,将在下一篇文章中详细介绍.但在学习法线映射之前,深刻地理解切换空间非常重要.因此借这一篇文章来学习下它,以为后面学习法线映射.视差映射(Parallax Mapping).Dis

[No000013F]WPF学习之X名称空间详解

原文:[No000013F]WPF学习之X名称空间详解 X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的.用来引导XAML代码将XAML代码编译为CLR代码. 4.1X名称空间里面到底都有些什么? x名称空间映射的是:http://schemas.microsoft.com/winfx/2006/xaml,望文生义,它包含的类均与解析XAML语言相关,所以亦称之为“XAML名称空间”. 与C#语言一样,XAML也有自己的编译器.XAML语言被解析并编译,最终形成微

C++ primer plus读书笔记——第9章 内存模型和名称空间

第9章 内存模型和名称空间 1. 头文件常包含的内容: 函数原型. 使用#define或const定义的符号常量. 结构声明. 类声明. 模板声明. 内联函数. 2. 如果文件名被包含在尖括号中,则C++编译器将在存储标准头文件的主机系统的文件系统中查找.但如果头文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录(或其他目录,这取决于编译器).如果没有在那里找到头文件,则将在标准位置中查找.因此在包含自己的头文件时,应使用引号而不是尖括号. 3. 链接程序将目标文件代码.库代码和