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毫秒