關於using宣告與using指令 c

2021-07-09 09:28:24 字數 964 閱讀 4628

書中提到using宣告與using指令。

using std::cin; 這就是乙個using宣告,就像乙個普通的宣告。以後提到cin時就指的是std裡面的。

using namespace std;這就是乙個using指令,匯入所有std裡面的應用。

除此之外,還需注意:(以下引自

「一般來說,使用using宣告會更安全。因為,using宣告只匯入指定的名稱,如果該名稱與區域性名稱發生衝突,編譯器會報錯。而using指令匯入整個命名空間中的所有成員的名稱,包括那些可能根本用不到的名稱,如果其中有名稱與區域性名稱發生衝突,則編譯器並不會發出任何警告資訊,而只是用區域性名去自動覆蓋命名空間中的同名成員。特別是命名空間的開放性,使得乙個命名空間的成員,可能分散在多個地方,程式設計師難以準確知道,別人到底為該命名空間新增了哪些名稱。」

理解為:使用using指令時,如果**塊中有重名的變數,則會用區域性變數名覆蓋命名空間中的同名成員,而不會報錯。

使用using宣告時,遇到上述情況,編譯器會報錯。

重名的變數將使程式設計師很難區分,引起歧義。故,使用using宣告是個不錯的方法,況且它僅僅匯入需要的成員,必然占用資源較少。

示例1:

c/c++ code

namespace

myname

intmain()

編譯出現錯誤:error c2374: 「myname::n」: 重定義;多次初始化

符合這句話:「using宣告只匯入指定的名稱,如果該名稱與區域性名稱發生衝突,編譯器會報錯。」

示例2:

c/c++ code

namespace

myname

intmain()

編譯正確。

符合這句話:

「而using指令匯入整個命名空間中的所有成員的名稱,包括那些可能根本用不到的名稱,如果其中有名稱與區域性名稱發生衝突,則編譯器並不會發出任何警告資訊,而只是用區域性名去自動覆蓋命名空間中的同名成員。」

過載和using宣告 using指示

using 宣告 using 命名空間 成員 一次只引入命名空間中的1個成員。令名字在區域性作用域有效,外層作用域的同名實體將被隱藏。using 指示 using namespace 命名空間 使得某個特定的命名空間中名字都可見。令整個命名空間內容都有效,而通常命名空間中含有一些不能出現在區域性作用...

命名空間using 宣告

1.作用域操作符 std cin,含義 有運算元的名字可在左運算元的作用域中找到。通過 作用域操作符可實現對全域性範圍的變數進行訪問。例如 cout a 輸出全域性作用域的變數a的值。2.using 宣告 using namespace std using std cin 3.使用標準型別的類定義 ...

C 基礎之using宣告

之前看到的程式,都是通過直接說明名字來自 std 命名空間,來引用標準庫中的名字。例如,需要從標準輸入讀取資料時,就用 std cin。這些名字都用了 操作符,該操作符是作用域操作符。它的含義是右運算元的名字可以在左運算元的作用域中找到。因此,std cin 的意思是說所需要名字 cin 是在命名空...