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

1、头文件名
c++拾遗-----开始学习c++_第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
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!" <"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++拾遗,c++-命名空间)