using namespace std

名词空间namespace

1) namespace只能在全局范畴定义,但它们之间可以互相嵌套。

2) 在namespace定义的结尾,右大括号的后面不必要跟一个分号。

3) 一个namespace可以在多个头文件中用一个标识符来定义,就好象重复定义一个类一样。

4)一个namespace的名字可以用另一个名字来作它的别名,这样我们就不必敲打那些开发商提供的冗长的名字了。比如说namespace alex = ThisIsAelxLongNamespace;

5) 我们不能像类那样去创建一个名字空间的实例

1.每个编译单元可以有一个没有命名的名词空间。

//cu.cpp

namespace{

class object{}...

}

   2. 友元:可以在一个名字空间的类定义之内插入一个friend 声明,这个友元也属这个namespace

使用名词空间namespace

1.alex::Student::age=5;//象使用类一样使用namespace

2.使用using指令using namespace std;using namespace alex;using namespace chirs;

如果alex 和chirs都有一个love 函数的话,就会发生冲突,

3.使用using声明:

void func(){

using namespace alex;//using指令

using chris::love;//uisng声明

love();//chirs::love();

alex::love();//必须这么使用

}

 

使用名称空间标识符std。
这样在原来使用名称空间的头文件里就可以直接使用里面定义的全局变量。
此处所谓的全局就是只在本名称空间里有效。
比如你使用c++标准流库的时候,往往需要这样包含头文件:
1.#include
或者:
2.#include
方式1使用了名称空间机制,而后者没有。
所以前者定义的io对象cin&cout就不可以直接使用,而必须使用std::cin和std::cout.要是在文件开始用了using namespace std;则可以直接使用cin&cout.
方式2就不需要这些措施。这也是我们平时就采用的方法。


名字空间指标志府的可见范围。

自己定义名字空间

namespace A

{

class B{}

}

这样你的类只在这个名字空间里可见,如果别的地方想要使用你这里定义的B的话,必须加上

int main()
{
using namespace A;
B b;
}

或者加名字空间限定府 A::B b;这样就定义了一个B类型的对象。

c++标准库中所有的标志府都被定义在一个名字空间std中,iostream也是标准库中的头文件,你查看一下include目录,会发现又两个头文件iostream.h和iostream,其中iostream.h是c++以前的库,iostream是在名字空间std中的库,所以当你包含头文件并想使用头文件中的标志符的时候有两种方法。

#include <iostream.h>

或者

#include <iostream>

using namespace std;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值