C++命名空间 namespace的作用和使用解析

来源:互联网 发布:西安编程零基础培训 编辑:程序博客网 时间:2024/06/07 04:04
//fun.h#ifndef TEST_H_#define TEST_H_namespace HW{  void fun(void);}#endif//fun.cpp#include"fun.h"void HW::fun(void){  //do nothing}//main#include<iostream>#include"fun.h"int main(int argc, char **argv){  HW::fun();  //或者  //using namespace HW;  //fun();  return EXIT_SUCCESS;}
//fun.h#ifndef TEST_H_#define TEST_H_namespace HW{  void fun();}#endif//fun.cpp#include"fun.h"using namespace HW; // 这样也可以void fun(){  //do nothing}//main#include<iostream>#include"fun.h"int main(int argc, char **argv){  HW::fun();  //或者  //using namespace HW;  //fun();  return EXIT_SUCCESS;}

以上是namespace的常用写法,namespace是用来限定作用域,只有调用了using namespace才可使用该命名区域内的成员,当不同头文件中创建了相同的命名空间,有以下两种情况:
1)名字空间名称相同,成员名字不同,那么他们会自动合并为一个名字空间,可以理解为追加
2)名字空间名称相同,成员名称相同。那么程序会在调试过程的link时报错。因为连接器会检测到重复定义的变量。

0 0
原创粉丝点击