computer 版 (精华区)

发信人: remember (学海无涯·回头是岸), 信区: program
标  题: 关于命名空间
发信站: 听涛站 (2001年12月09日02:52:10 星期天), 站内信件

    老实说,我自己对命名空间还是一知半解,就我所知写写吧。

    命名空间,关键字namespace,可以作用主要是区分类的作用
空间,避免因为多方协作开发时需要时刻顾忌着他人使用了什么
类名——这个在大型程序多方协作开发时是难以协调的。
    使用命名空间的方式有两种,一种是显式声明,一种是直接调
用,我们来看看例子:
    假设我们有一个命名空间remember(表明这组类有remember开
发),头文件remember.h,其中有一个类叫bbs。
    那么我们在程序中需要使用bbs这个类的时候,可以这样写:

    #include <remember.h>
    using namespace remember;

    bbs mybbs;

    这个称为显示声明。
    当然,我们可以直接调用,写法如下:

    #include <remember.h>

    remember::bbs mybbs;

    当然,两种情况下都要include适当的头文件。
    前面一篇提到C++标准库,实际上所有C++标准库都在命名空间
std中,所以通常在使用标准库提供的函数、类时都需要声明。通常
采用直接声明的方式。如:

    #include <iostream>
    #include <string>
    using namespace std;

    int main(){
        string mystring;
        cin>>mystring;
        cout<<mystring<<endl;
        return 1;
    }

    也许有人注意到,这里我们include的头文件不是iostream.h,
而是iostream,是我写漏了.h么?不是,C++没有规定头文件一定是
.h结尾,为了避免与以前的非标准C库兼容的问题,C++做出了让步,
使用了命名空间std的同时,把头文件对应的.h去掉,大家可以在vc
一类编译器的include目录中找到iostream.h和iostream这样对应的
文件。
    简单说来,include带.h的头文件不需要使用命名空间;而使用
标准C++库的话,建议使用不带.h的头文件,并显示声明std这个命名
空间。

    当然,MFC中似乎没有管命名空间这回事,直到C#中才重新提出。
    从编程习惯看来,我建议大家还是早接受std这个命名空间的好。
    就是说,调用标准C++库函数和类,include不带.h的头文件,并
写上:using namespace std;
    
--
    洛阳亲友如相问  一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:0.894毫秒