学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

第七节 模板(Templates)(4)

设置字体:
----------------------------------

使用名空间的格式是:
        namespace identifier
        {
            namespace-body
        }
这里identifier 是一个有效的标示符,namespace-body 是该名空间包含的一组类、对象和函数。例如:
        namespace general
        {
            int a, b;
        }
在这个例子中,a 和 b 是名空间general中的整型变量。要想在这个名空间外面访问这两个变量,我们必须使用范围操作符::。例如,要想访问前面的两个变量,我们需要这样写:
general::a
general::b
名空间(namespaces)的作用在于全局对象或函数很有可能重名而造成重复定义的错误,名空间的使用可以避免这些错误的发生。例如:
    // namespaces
    #include <iostream.h>
   
    namespace first {
        int var = 5;
    }
   
    namespace second {
        double var = 3.1416;
    }
   
    int main () {
        cout << first::var << endl;
        cout << second::var << endl;
        return 0;
    }  
              
5
3.1416
在这个例子中,两个都叫做var全局变量同时存在,一个在名空间first 下面定义,另一个在 second下面定义,由于我们使用了名空间,这里不会产生重复定义的错误。
 
名空间的使用 (using namespace)
使用 using 指令后面跟namespace可以将当前的嵌套层与一个指定的名空间连在一起,以便使该名空间下定义的对象和函数可以被访问,就好像它们是在全局范围内被定义的一样。它的使用遵循以下原型定义:
using namespace identifier;
例如:
    // using namespace example
    #include <iostream.h>
   
    namespace first {
        int var = 5;
    }
   
    namespace second {
        double var = 3.1416;
    }
   
    int main () {
        using namespace second;
        cout << var << endl;
        cout << (var*2) << endl;
        return 0;
    }                 
3.1416
6.2832
在这个例子中的main函数中可以看到,我们能够直接使用变量var 而不用在前面加任何范围操作符。
这里要注意,语句using namespace 只在其被声明的语句块内有效(一个语句块指在一对花括号{}内的一组指令),如果using namespace是在全局范围内被声明的,则在所有代码中都有效。例如,如果我们想在一段程序中使用一个名空间,而在另一段程序中使用另一个名空间,则可以像以下代码中那样做:
    // using namespace example
    #include <iostream.h>
   
    namespace first {
        int var = 5;
    }
   
    namespace second {
        double var = 3.1416;
    }
   
    int main () {
        {
            using namespace first;
            cout << var << endl;
        }
        {
            using namespace second;
            cout << var << endl;
        }
        return 0;
    }  
                      
5
3.1416
 
----------------------------------
课程列表
重点难点
赞助链接