c++名字空间

原创 2012年03月22日 21:26:07

c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。举一个实例,请注意以下两个头文件:

// one.h

char func(char);

class String { ... };

// somelib.h

class String { ... };

如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。

所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。比如:

// one.h

namespace one

{

    char func(char);

    class String { ... };

}

// somelib.h

namespace SomeLib

{

    class String { ... };

}

现在就算在同一个程序中使用String类也不会发生冲突了,因为他们分别变成了:one::String()以及Somelib::String()

这样,就可以通过声明命名空间来区分不同的类或函数等了。

比如C++标准库定义了命名空间:std,其中包含容器vector,示例如下:

#include "stdafx.h"

#include <vector>

#include <iostream>

#include <algorithm>

using namespace std;

int main(int argc, char* argv[])

{

 const int arraysize = 7;

 int ia[arraysize] = {0,1,2,3,4,5};

 file://定义容器vector

 vector<int> ivect(ia,ia+arraysize);

 vector<int>::iterator it1 = find(ivect.begin (),ivect.end (),4);

 if(it1 == ivect.end ())

  cout<<"4 not found "<<endl;

 else

  cout<<"4 found "<<*it1<<endl;

 return 0;

}

输出结果为:4 found 4.

相关文章推荐

C++名字空间

  • 2012年12月09日 00:06
  • 137KB
  • 下载

【c++基础】3.注释、头文件、名字空间

【一】注释注释是为我们写的代码添加批注的一种方法,无论代码是给别人看,还是给以后的自己看,写注释都是一种好习惯,有助于提高代码的可读性,注释在编译的时候并不会被包含到程序中,c++中注释的方法有两种:...

玩转C++名字空间

一、概要 名字空间是一种描述逻辑分组的机制。也就是说,如果有一些声明按照某种准则在逻辑上属于同一个集团,就可以将它们放入同一个名字空间,以表明这个事实。名字空间就是为了表示逻辑结构。同时也避免了名字...

C++中的名字空间

C++中引入了名字空间(namespace)的概念。名字空间有两方面的用途,一是将逻辑上相关的元素组织在一起,更重要的一点是解决函数和变量重名问题。命名空间的定义方式如下:namespace 名字空间...

C++初级主题--名字空间域和类域

一.序在C++中支持三种域:局部域、名字空间域和类域。二.名字空间域1.名字空间域是随标准C++而引入的。它相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来,并以关键字names...

C++名字空间的主要用法示例

/*lzw.cpp*/ // C++源程序的扩展名是.cpp, 而C的源程序的扩展名是.C #include // 包含标准输入输出头文件 iostream using namesp...

C++技巧之名字空间namespace

C的开发人员会经常使用#define,即用宏来声明常量,但宏却是全局的,对大的工程很难维护,经常是导致名字冲突。还好,C++给我们带来了namespace名字空间。它的使用如下,名字空间可以把一组逻辑...

c++名字空间

namespace 是C++中的一个新的特性,它的出现只要是为了避免出现名字污染。 JAVA语言中的packing包和C++的namespace功能差不多 ********************...

c++基础知识---名字空间

namespace 是C++中的一个新的特性,它的出现只要是为了避免出现名字污染。 JAVA语言中的packing包和C++的namespace功能差不多 ********************...

C++程序设计语言读书笔记-C8 - 名字空间和异常

1. 我们需要将一个模块和它的界面区分开来 2. C++提供了异常机制,用于降低检查,报告错误和处理错误之间的联系程度 3. 名字空间是一种描述逻辑分组的机制 4. 在理想情况下,一个非平凡的程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++名字空间
举报原因:
原因补充:

(最多只允许输入30个字)