您的位置:程序门 -> c/c++ -> c++ 语言



关于名字空间的一个问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于名字空间的一个问题[已结贴,结贴人:hidding]
发表于:2007-08-11 21:22:29 楼主
下面是c++primer里的一段代码:
//   *****   string   implementation   *****
#include   <iostream>
#include   <string>
int   main()   {
int   errors   =   0;
string   str(   "a   very   long   literal   string "   );
for   (   int   ix   =   0;   ix   <   1000000;   ++ix   )
{
int   len   =   str.size();
string   str2   =   str;
if   (   str   !=   str2   )
++errors;
}
cout   < <   "string   class:   "
< <   errors   < <   "   errors   occurred.\n ";
}
我用vc6.0编译,显示错误,指的是string等未定义
我把头文件都加了.h后还是一样
最后我就在头文件定义后加了
  using   namespace   std;
竟然可以了  

请教这是为什么...谢谢
发表于:2007-08-11 21:41:161楼 得分:0
流一个印,等高手。
发表于:2007-08-11 21:51:272楼 得分:0
本来就要using   namespace   std;的。
发表于:2007-08-11 21:54:183楼 得分:1
因为string是标准空间的
如果不用using   namespace   std就这样用:std::string   str=。。。
发表于:2007-08-11 21:58:434楼 得分:8
标准模板库中的类都被封装到名字空间   std   中了,所以在使用前应该用
using   namespace   std
或用
using   std::string
using   std::cout
等声明。或在每次用string的时候用std声明:如
std::string   s;   //声明s为string类型。
好好看看有关名字空间的章节吧。
另外string.h和string头文件是不一样的。string.h是c头文件,   其中声明的是
strcpy(),strcat()等c标准函数。string是c++头文件,其中声明stl的string类。
如果要在c++中用到string.h   stdio.h   stdlib.h   等c标准函数头文件,应该用
#include <cstring>
#include <cstdio>
#include <cstdlib>
等代替。
发表于:2007-08-11 21:59:415楼 得分:0
stl的所有东西都是在一个叫std的空间中声明的
发表于:2007-08-11 23:58:146楼 得分:1
每次看std都觉得是student的所写~

哈哈

std全称是?standard?
发表于:2007-08-12 02:43:227楼 得分:0
嗯,std   stands   for   standard.

http://www.codepedia.com/1/cppstd
发表于:2007-08-12 13:36:358楼 得分:0
路过留印



快速检索

最新资讯
热门点击