命名空间和include

原创个人理解:都可以做工具类,直接引用,命名空间 相对于include是可以扩展的



转载


// 头文件

namespace gyy
{
class gongy
{
private:
 char name[10];
 int age;
public:
 gong(char iname[], int age);
 void output();
};
}


// 实现文件

#include <string>
#include "tt.h"
using namespace std;

namespace gyy
{
gong::gong(char iname[], int iage)
{
 strcpy(this->name, iname);
 this->age = iage;
}
void gong::output()
{
 printf("Name: %s\n", this->name);
 printf("Age : %d\n", this->age);
}
}


这样就创建了一个名字为gyy的命名空间,以后用的时候只需要加入:

using namespace gyy;

转载

http://book.51cto.com/art/201204/326981.htm

2.2.2 include预编译指令和命名空间

2012-04-05 09:07 周靖 译 清华大学出版社 字号: T | T
一键收藏,随时查看,分享好友!

《C++程序设计(第8版)》第2章C++基础知识,本章将解释更多的C++示范程序,展示C++语言足够多的细节,便于你写出简单的C++程序。本节为大家介绍include预编译指令和命名空间。

AD:51CTO学院:IT精品课程在线看!


2.2.2  include预编译指令和命名空间

我们所有的程序都以下面这两行代码开始:

 
       
  1. #include <iostream>

  2. using namespace std;

这两行使iostream库进入可用状态。cin和cout的定义就包含在这个库中。所以,假如程序使用了cin或cout,就应该在程序文件起始位置包含上述两行代码。

下面这一行代码称为include预编译指令。它将iostream库"包含"到程序中,使程序可以使用cin和cout:


 
       
  1. #include <iostream>


cin和cout在一个名为iostream的文件中定义,以上include指令相当于将那个文件复制到程序中。第二行代码比较复杂,三言两语很难说清。 C++使用命名空间组织名称。命名空间是很多名称(比如cin和cout)的集合。通过以下方式指定命名空间的语句称为using预编译指令:
 
       
  1. using namespace std;

这个特定的using指令表明程序准备使用std(指standard)命名空间。这意味着你使用的名称具有std命名空间为其定义的含义。这儿的重点在于,cin和cout等名称在iostream中定义时,它们的定义指出它们在std命名空间中。所以,要使用cin和cout等名称,就要告诉编译器你准备"using namespace std;"。

对于命名空间并不需要了解太多(就目前而言),但简单地澄清一下,有助于解除你在使用命名空间时可能产生的一些困惑。C++之所以有命名空间,是因为有太多的东西需要命名。结果就是,可能有两个或者更多的项同名。换句话说,一个名称可能具有两个不同的定义。为消除歧义,C++将不同的项划分到不同的集合中,确保同一个集合(即同一个命名空间)中没有任何两个项同名。

注意,命名空间并不只是一个名称集合。它代表了一个C++代码主体,其中指定了某些名称的含义(比如一些定义和/或声明)。命名空间的作用是将所有C++名称规范划分成不同的集合(称为命名空间),使命名空间内的每个名称在那个命名空间中都只有一个"规范"(一个定义)。命名空间对名称进行划分,但和那些名称配合的还有大量C++代码。

可以使用两个命名空间中的两个同名元素吗?答案是肯定的,而且并不复杂,但那是本书后面要讲的一个主题。目前不需要这样做。

有的C++版本使用include预编译指令的一种古老形式(没有任何using namespace):

 
       
  1. #include <iostream.h>


使用以下语句时,如果程序无法编译或者不能运行:
 
       
  1. #include <iostream>

  2. using namespace std;


请尝试将上述两行代码统一更换为如下形式:
 
       
  1. #include <iostream.h>


但是,如果程序要求使用iostream.h(而不是iostream),则表明你使用的是老版本的C++编译器,应考虑升级。



你可能感兴趣的:(命名空间,include)