#include <iostream>
namespace CX
{
bool IsDirectory()
{
return true;
}
}
namespace HO
{
bool IsDirectory()
{
return false;
}
}
using namespace HO;
int main()
{
bool b = IsDirectory();
//b = HO::IsDirectory();
return 0;
}
其中
namespace xxx
{
就可以区分开了。
bool b = HO::IsDirectory();就表示引用的是HO这个命名空间的IsDirectory()函数
bool b = CX::IsDirectory();就表示引用的是CX这个命名空间的IsDirectory()函数
如果主要想只引用HO这个空间的函数,就可以在main()函数前加上using namespace HO;这样,
bool b = IsDirectory();就可以编译通过,不需要再用HO::域名进行限制。
可以同时有几个命名空间,比如,可以加上using namespace std;即是:main 函数前有
using namespace HO;
using namespace std;
int main()
{}
这样,当用cout,cin函数时,也可以不加std::,这种做法的前提是两个命名空间没有相同的函数,例如:
using namespace HO;
using namespace CX;
int main()
{}
两个命名空间有相同的函数,就是不可编译成功的。
namespace CX
{
bool IsDirectory()
{
return true;
}
}
namespace HO
{
bool IsDirectory()
{
return false;
}
}
using namespace HO;
int main()
{
bool b = IsDirectory();
//b = HO::IsDirectory();
return 0;
}
其中
namespace xxx
{
}
就是一个命名空间,之所以要这样写几个命名空间,原因是作为一个大的工程,可能是由多个程序员
共同完成的,不能保证几个人不会写出同样的名字的函数,所以加上一个命名空间,这样在主函数中调用时,就可以区分开了。
bool b = HO::IsDirectory();就表示引用的是HO这个命名空间的IsDirectory()函数
bool b = CX::IsDirectory();就表示引用的是CX这个命名空间的IsDirectory()函数
如果主要想只引用HO这个空间的函数,就可以在main()函数前加上using namespace HO;这样,
bool b = IsDirectory();就可以编译通过,不需要再用HO::域名进行限制。
可以同时有几个命名空间,比如,可以加上using namespace std;即是:main 函数前有
using namespace HO;
using namespace std;
int main()
{}
这样,当用cout,cin函数时,也可以不加std::,这种做法的前提是两个命名空间没有相同的函数,例如:
using namespace HO;
using namespace CX;
int main()
{}
两个命名空间有相同的函数,就是不可编译成功的。