您的位置:首页 > 编程语言 > C语言/C++

c++拾遗-----开始学习c++

2015-12-08 23:10 162 查看
1、头文件名



.h作为头文件(header)的后缀名,只是习惯而非规定。对于C++的标准库,它的前身是带.h的,内容上最大的区别是文件名不包含.h的头文件中使用了命名空间std,以防止命名空间污染。

2、命名空间

1、定义及作用

命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。

2、定义规则

在命名空间中可以包括

变量(可以初始化)

常量

函数(定义或声明)

结构体



模板

命名空间(嵌套定义,也可以引用其他命名空间)

命名空间可以是全局的,也可以位于另一个命名空间,但不能位于代码块中,命名空间是开放的,即可以把名称添加到现有的命名空间中

3、使用规则

using声明和using编译指令

using声明由限定的名称和它前面的关键字using组成,使特定标识符。using声明将特定名称添加到它所属声明区域中

//namespace_test.h文件
namespace test_namespace
{
int fetch;
}


//namespace_test.cpp文件
#include<iostream>
int fetch;
int main()
{
using namespace std;
//using声明,相当于在main函数中声明了fetch变量,不可再声明相同名称的变量
using test_namespace::fetch;
//非法
//int fetch;
cin>>fetch;//输入test_namespace::fetch,屏蔽全局变量
}


using编译指令由命名空间名和它前面的关键字using namespace组成,使得整个所有名称可用

//namespace_test.h文件
namespace test_namespace
{
int i;
}


//namespace_test.cpp文件
#include"namespace_test.h"
using namespace test_namespace;
int _tmain(int argc, _TCHAR* argv[])
{
i = 0;
cout << "hello world!" <<i<< endl;
system("pause");
return 0;
}


另:如果要让命名空间中的变量在其他文件中使用,需进行如下定义

//namespace_test.h文件
namespace test_namespace
{
extern int i;//声明全局变量
}


//namespace_test.cpp文件
#include"namespace_test.h"
namespace test_namespace
{
int i;//定义全局变量
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++-命名空间