首先说一下printf吧,在最早的C语言的时候,由于不是面向对象,所以所有的函数都是唯一的!也就是说你打印的话,就必然会使用printf函数,当然了,你也可以操作更底层的代码,但是一般人不会那么干的,所以PRINTF就属于唯一的函数。
后来C++出现了,并且出现了STL或者一些其他面向对象的概念和函数。那么就会出现你写的函数和系统提供的函数会发生冲突,例如你可以自己写一个sort()函数来进行排序,但是STL里面也提供了sort()函数进行排序。并且如果你调用sort()函数的话,那么系统到底是调用你写的函数呢,还是调用STL的函数呢?这就需要到命名空间了。
如果你直接sort()的话,那么可能是调用你写的函数。
但是如果你std::sort()的话,就是调用STL中的排序函数。
命名空间说白了,就是有多个同名函数,或者变量。用命名空间来区分这些同名的变量和函数。
目的 解决命名的冲突
即使名字相同,只要不是在一个命名空间中,编译器还是可以运行的....