2015-10-13 88 views
0

我在C++書中閱讀 - >C++ Programming: Visual Quickstart Guide,爲了使用如cincout而不是std::的語句,您需要添加行using namespace std我是否需要使用'using namespace std'命令?

然而,此刻我正在做A級計算機科學,用C++和的CBuilder,和我沒有到該行添加到我的節目 - 因爲我能夠在使用coutcin他們自己沒有遇到任何錯誤。

那真的不需要嗎?或者Cbuilder本身配置std

總之:爲什麼我能夠跳過使用std,儘管還沒有宣佈我沒有使用它?

+0

@NathanOliver不,它不是重複 - 我不問我是否應該使用它,我問爲什麼我能夠跳過使用'std',儘管還沒有宣佈我沒有使用它 – DevRobot

+0

我的壞。刪除。 – NathanOliver

+1

檢查是否在任何頭文件中定義了「using namespace std;'你在源代碼中包含的文件 –

回答

2

有些編譯器/庫相對於標準來說比其他編譯器/庫更爲寬鬆:根據標準,您的程序不應該編譯。名稱空間污染(將名稱放入它們不屬於的名稱空間中,在這種情況下是全局名稱空間)會發生很多,並且當您切換到另一個編譯器和/或標準庫時會導致這些類似的錯誤。

除非CBuilder有一個選項,可以在它編譯的所有東西中添加一個隱含的using namespace std;(以上是所有人都可以告訴你的)。沒有任何「配置」發生在任何地方,不知道你可能意味着什麼。

1

不,你不需要那個using聲明。它是代碼中內聯顯式名稱空間引用的替代方法。例如,您可以使用

std::cout << "Hello world" << std::endl; 

沒有using聲明。

或者,您可以包括using namespace std語句,然後代碼:

cout << "Hello world" << endl; 

這是一個選擇。我個人傾向於省略using聲明並在適當的地方明確插入std::

0

它取決於你使用的編譯器。一些編譯器爲你添加它。但是,爲了您自己的利益和當然的知識,請添加using namespace std;或者您必須將std::

相關問題