注册 登录
编程论坛 C++教室

"using namespace std;"是什么意思呀?

chencuicui 发布于 2007-10-09 20:18, 8396 次点击
"using namespace std;"是什么意思呀?学C++有不短时间了,经常看到这句语句,没实际用过,想请教一下这条语句具体含义是什么呀?
19 回复
#2
海子星竹2007-10-09 20:45
命名空间
书上有
#3
chencuicui2007-10-09 20:54

我用的基本教材上都没有啊
呵呵,我把这条语句从程序的头部去掉也不影响程序运行哦

#4
故事2007-10-09 20:56
学c++有不短时间了应该用到过呀
这是名称空间 后面的cout之类的关键字就包含在这里面
#5
succubus2007-10-09 20:57
以下是引用chencuicui在2007-10-9 20:54:09的发言:

我用的基本教材上都没有啊
呵呵,我把这条语句从程序的头部去掉也不影响程序运行哦

强烈建议你把那本教材扔了

#6
duffebear2007-10-09 22:19

扔了你现在的教材,花点钱买好教材 学得又好又快

#7
TenY2007-10-10 10:06
[QUOTE]

使用命名空间。

关于命名空间可以简单理解成:
全世界的编程人员,在给对象命名时,一般都会用一些单词的简写之类,所以很有可能出现不同的功能却有相同的名称。以前的老方法是大家给自己的每一个对象都加上一个独有的前缀,例如:mylib_cout 之类,但这样在使用和修改时都很不方便,所以C++提供了命名空间解决该问题。

形象一点说:
命名空间就像一个文件夹,其内的对象名就像一个个文件,不同的文件夹内文件可以重名。在使用重名的文件时,只需要说明是哪个文件夹下的就行了。

而你所说的例子里:using namespace std; 就是告诉编译器,这行代码之后用到的 cout、cin 等函数都是 std 这个命名空间内定义的。

另外顺便提一下,命名空间也并没有解决所有问题,它只是使发生命名冲突的机会变小了许多而已。

[/QUOTE]

转载百度
#8
孤魂居士2007-10-10 11:21

顶LS

#9
PcrazyC2007-10-10 12:09
using namespace std就是声明了名字空间std,有关STD里面的函数和变量都可以直接调用,而不需要在前面加域运算符"::",比如没有这句的话,输出语句如下:std::cout<<a<<std::endl;有了这句就可以直接这样写cout<<a<<endl;
#10
csmenglei9512007-10-10 12:51
LS正解
#11
snipered2007-10-10 15:42
是不是和include<iostream.h>一个意思啊?
我也不太清楚
#12
eagleboycn2007-10-10 17:58
以下是引用snipered在2007-10-10 15:42:10的发言:
是不是和include<iostream.h>一个意思啊?
我也不太清楚

应该不是吧?
iostream应该是必须的吧
我用的是VC
前面不加std::,或者不用 using namespace std;也可以啊
希望高手详细解答下

#13
青格儿2007-10-10 18:58
用#include<iostream.h>就不用using namespace std
或是#include<iostream>
using namespace std;

因为.h是C语言的库
#14
忘记喧嚣2007-10-11 22:55
C++里面用的是 #include&lt;iostream&gt;   没有.h
#15
animeo2007-10-12 13:09
那么既然有了iostream.h为什么还要有iostream+using namespace std呢?
#16
阿拉丁2007-10-12 13:50
我也遇到了这样的问题,我用的是DEV C++
#17
china25qd2007-10-13 10:00

命名空间std,估计是自定义的.命名空间在C++是个新事物,LZ想学习的话可以去参考XML的相关书籍

#18
青格儿2007-10-15 09:29
.h是老标准,没.h的是新标准,现在大部分编译器不再支持#include <iostream.h>
这种写法 dev-cpp 就不支持带.h 的头文件
#19
hhei2007-10-15 13:03
域名空间。一开始你用#include&lt;iostream&gt;,再加上using namespace std;你就可以用标准命名空间中的所有元素。你自己也可以定义命名空间,自己定义的不属于标准命名空间。如果你用#include&lt;iostream.h&gt;的话,就不需要使用using namespace std 了。新的头文件(比如&lt;iostream&gt;)中的所有元素都是标准命名空间(standard namespace,也称std)中的一部分。这就是为什么,如果使新的头文件(比如&lt;iostream&gt;而不是&lt;iostream.h&gt;)的话程序就必须加上using namespace std;了。
#20
盖特露德2014-04-20 11:41
求好教材,
1