簡體   English   中英

:: std :: string和std :: string有什么區別?

[英]What is the difference between ::std::string and std::string?

::std::stringstd::string什么區別前者是全局的? 但全局是什么?不是命名空間std全球? 謝謝你的幫助。

::std::string表示全局命名空間中命名空間std中的string leading ::強制查找在全局命名空間中開始。 因此::std::string總是表示C ++標准庫中的string類型。

std::string表示命名空間std string ,其中std將在當前范圍中查找。 因此,如果存在名為std的類,名稱空間或枚舉,則名稱查找可能會找到該std

#include <string>
namespace foo {
  namespace std {
    class string { ... };
    namespace bar {
      std::string s;    // means foo::std::string
      ::std::string s;  // means string from standard library
    }
  }
}

只要您和您的合作者同意不指定任何std ,就沒有必要使用前導:: 這只是一種很好的風格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM