C++新型头文件与名称空间的作用

1.20 新型头文件与名字空间
    本节是为使用支持ANSI/ISO草案标准的编译器用户提供的。草案标准指定了许多旧式C++头文件的新名,包括iostream.h,大多数新式头文件不再用扩展名.h。图1.16改写图1.2,演示新型头文件和两种使用标准库头文件的方法。
    第3行:
    #include
    演示新型头文件 名语法。
    第5行:
    using namespace std;
指定用std名字空间(namespace),这是C++中的新特性。名字空间可以帮助程序员开发新的软件组件而不会与现有软件组件产生命名冲突。开发类库的一个问题是类和函数名可能已经使用。名字空间能为每个新软件组件保持惟一的名称。
    1 // Fig. 1.16:fig01_16.cpp
    2 // Using new-style header files
    3 #include
    4
    5 using namespace std;
    6
    7 int main()
    8 {
    9     cout<<"Welcom to C++!\n";
    10     std::cout<<"Welwcom to C++!\n";
    11
    12     return 0;        
    13 }

    输出结果:
    Welcom to C++!
    Welcom to C++!
                    
                    图 1.16 使用新型头文件

    C++草案标准中的每个头文件用名字空间std保证今后C++标准库操作的每个特性是惟一的,不会与其它程序员开发的软件组件混淆起来,程序员不能用名字空间定义新的类库。上述语句只是表示我们使用C++标准库中的软件组件,要定义自己的类库,则可以将我们的所有类和函数放在名字空间deitel中,使我们的类库与所有其它公司的类库和C++标准类库区别开来。
    程序中出现"using namespace std"语句之后,就可以像第9行那样用cout对象将数值输出到标准输出流中。如果使用两个或几个类库,其中有的特性名称相同,则可能引起名称冲突。这时就要用名字空间来完全限定所用的名称,例如第10行的std::cout:
    std::cout<<"Welcom to C++!\n";
cout的完全限定名为std::cout,如果全部采用这种形式,虽然比较繁琐,但程序中第5行的"using namespace std"语句就没有必要了。using语句可以在C++标准库中使用每个名称的简写版本(或其它指定名字空间的名称)。我们将在本书稍后详细介绍名字空间。目前并不是所有C++环境都已经支持新的头文件的命名格式。为此,我们在本书大部分地方使用旧式头文件 ,只在介绍C++标准新特性时才使用新的头文件命名格式,使用新格式时将特别注明。

你可能感兴趣的:(C/C++)