有如下代码:
namespace glbase
{
namespace clientbase05
{
  这里定义函数和变量。
}
}
麻烦大家给我讲讲这是什么意思?
另外还有这句:using namespace glbase::clientbase05
越详细越好。。谢谢

解决方案 »

  1.   

    所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:std::cout << std::hex << 3.4 << std::endl;2、使用using关键字。using std::cout;
    using std::endl;以上程序可以写成cout << std::hex << 3.4 << endl;3、最方便的就是使用using namespace std;例如:#include <iostream>
    #include <sstream>
    #include <string>
    using namespace std;
    这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:cout << hex << 3.4 << endl;因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。           所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"
      

  2.   


    nested namespace使用了嵌套的 namespace使用时要指明函数、变量和类所在的 namespace 的各个层次
      

  3.   

    namespace glbase: 定义一个namespace
    namespace clientbase05: 在namespace又定义了一个namespace两者是包含关系
    using namespace glbase::clientbase05: 表示用glbase下的clientbase05google一下吧,有很多相关资料
      

  4.   

    隨著程式碼撰寫越來越多,程式內容越來越大,您會發現管理程式中的變數名稱、函式名稱、類別名稱也會是一件麻煩的事,尤其是一些同名問題的發生,例如在程式中,您也許會定義一個Point類別代表2維空間的點,也許在程式的某個地方,您也會定義一個Point類別來表示一個3維空間的點,其它像函式同名、共用變數同名的情況也可能發生,當這種情況發生時,其中一個定義就可能將另一個定義給覆寫掉了。 C++提供名稱空間的概念,它就像是一個管理容器,可以將您所定義的名稱區域在名稱空間之下,而不會有相互衝突的發生,例如您定義了一個 dimension2d與dimension3d的名稱空間,在它們之下都有一個Point類別,但由於屬於不同的名稱空間,所以這兩個名稱並不會有所衝突。