空间名、名空间_百度百科

财经新闻 2019-08-28102未知admin

  声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。详情

  一般情况下,如果c++中出现两个变量、函数名、类名完全相同时,就会产生冲突。解决命名冲突的办法传统的做法是重新使用不同的标识符。但又是这样做有时反而降低程序的可读性,因此c++提供了第二种解决命名冲突的方法——名空间。将这些名字相同的变量、函数和类定义在不同的名空间中,问题就解决了。需要注意的是,同一个名空间中标识符须是唯一的。

  名空间定义用c++的关键字namespace引导,定义格式:

  使用名空间成员时需用名空间名进行标识,空间名从而解决了标识符的冲突。名空间成员访问方式如下

  可以指定名空间是C++的新特性,在使用STL类库时经常用到这么一句:using namespace std;

  该语句的含义是使用名空间std。使用名空间可以帮助开发程序人员在开发新的软件组件时不会和已有软件组件产生标识符命名冲突。

  C++中,头文件可以使用旧版本的*.h,也可以使用不带.h扩展名的头文件。编译预处理指令可以采用任何一种形式的头文件方式,但两种头文件不能混合使用。在应用名空间时,空间名使用编译预处理命令包含相关头文件时,应省略头文件后缀.h,例如使用iostream.h的方法如下:

  using namespace std;//指示在本程序中可以使用c++标准类库中定义的名字,std是标准名空间名,在标准头文件中声明的函数、空间名对象和类模板,都在名字空间std中声明

  string user_name=namespace A;

  coutIn namespace A……endl;

  string user_name=namespace B;

  coutIn namespace B……endl;

  coutA::user_nameendl;

  coutn=A::fun()endl;

  coutB::user_nameendl;

  coutn=B::fun()endl;

  std::coutThis is a C++ program!endl;

  C语言中规定每个变量都有其有效地作用域,只能在变量的作用域内使用该变量,不能使用其他作用域中的变量。例如:

  程序中有两个a变量:一个是全局变量a,实型;另一个是main函数中的整型变量a,它是在main函数中有效的局部变量。根据规定在main函数中局部变量讲屏蔽同名的全局变量。因此上述的输出是局部变量a的值5,而不是全局实型变量a的值13.5.如果想输出全局实型变量的值,有什么办法呢?c++提供了::,它能指定所需要的作用域。

  ::a表示全局变量a。请注意:不能用::访问函数中的局部变量。

Copyright © 2010-2020 首创网 版权所有  

联系QQ:1352848661