猿问

您好,请问c++标准库中的namespace是如何组织的?

是单用一个头文件,然后创建一个namespace在里面实现申明与定义,还是单放申明,然后实现在其他文件中?

慕娘9325324
浏览 272回答 2
2回答

aluckdog

一般的用法是在头文件中用namespace进行组织,避免多个模块中出现名字冲突,当然其中既可以有声明也可以有定义,如:1、头文件如下:#include <iostream>using namespace std;namespace mynamespace{class A{public:A(){cout << "Construction A" << endl;}//构造函数定义~A(){cout << "Destruction A" << endl;}//析构函数定义void print();//成员函数声明}}2、源文件如下:#include "头文件.h"using namespace mynamespace;//引用自己定义的命名空间void A::print()//成员函数定义{cout << "print function." << endl;}

慕斯709654

不一定要用头文件,namespace里面可以放申明也可以放定义,它只是为了防止不同模块中的变量或函数名 重名的问题例如:namespace A{...int fun(){};//注意函数名相同,定义不一定相同...}namespace B{...int fun(){};//注意函数名相同,定义不一定相同...}有名称空间域以后加上前缀就可以加以区分在C++中,是这样访问的A::fun();//表示访问A中的fun()函数B::fun();//表示访问B中的fun()函数
随时随地看视频慕课网APP
我要回答