命名空間和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++編譯器,應考慮升級。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章