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

    xiaoxiao2021-03-25  164

    //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时报错。因为连接器会检测到重复定义的变量。

    转载请注明原文地址: https://ju.6miu.com/read-3687.html

    最新回复(0)