在 C++ 中,“using namespace std” 是什麼意思?
考慮這樣一種情況,在一個班裡有兩個名字相同的人,都叫 Piyush。每當我們需要區分他們時,我們肯定需要使用一些額外的資訊來配合他們的名字,比如他們居住的地區(如果他們住在不同的地區),或者他們母親或父親的名字等等。
同樣的情況也可能出現在你的 C++ 應用程式中。例如,你可能正在編寫一些程式碼,其中包含一個名為 xyz() 的函式,並且還有一個可用的庫也包含相同名稱的函式 xyz()。現在編譯器無法知道你的程式碼中引用的是哪個版本的 xyz() 函式。
名稱空間旨在克服這個難題,並用作額外的資訊來區分在不同庫中可用的同名函式、類、變數等。使用名稱空間,你可以定義名稱定義的上下文。本質上,名稱空間定義了一個作用域。
C++ 擁有一個標準庫,其中包含你在構建應用程式時使用的通用功能,例如容器、演算法等。如果這些庫使用的名稱是公開的,例如,如果他們在全域性範圍內定義了一個佇列類,那麼你將無法再次使用相同的名稱而不會發生衝突。因此,他們建立了一個名稱空間 std 來包含此更改。
using namespace 語句的意思是在它所在的範圍內,使 std 名稱空間下的所有內容都可用,而無需在每個內容前新增 std:: 字首。
雖然這種做法對於簡短的示例程式碼或簡單的程式來說是可以的,但將整個 std 名稱空間引入全域性名稱空間並不是一個好習慣,因為它違背了名稱空間的目的,並可能導致名稱衝突。(即使最初沒有名稱衝突,隨著更多程式碼、庫等被新增到專案中,它們也可能在維護期間出現。)這種情況通常被稱為名稱空間汙染。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP