今天看了下C++,发现有很多问题还没有搞清楚。
其一就是命名空间。今天就花时间看看,争取高清楚。
我是看了如下的几段回复搞清楚的。希望对其他人有帮助。
============================================
using namespace std 这句的意思是 使用命名空间 std
比如 杭州有一个西湖 潮州也有个西湖
如果你只说 西湖 ,可能别人就不知道你是说那里的西湖
如果你说 杭州的西湖, 别人就知道你是说杭州的西湖
这里的杭州就好像是使用 using namespace std ;
如果使用这个 就不用 std::cout std::cin 就可以使用 cout cin
如果没有就要用 std::cout std::cin .
===========================================
// one.h
char func(char);
class String { ... };
// somelib.h
class String { ... };
如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。
所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。比如:
// one.h
namespace one
{
    char func(char);
    class String { ... };
}
// somelib.h
namespace SomeLib
{
    class String { ... };
}
现在就算在同一个程序中使用String类也不会发生冲突了,因为他们分别变成了:one::String()以及Somelib::String()