2017-01-06 13 views

Antwort

14

::std::string bedeutet string im Namespace std im globalen Namespace. Die führende :: erzwingt das Starten der Suche im globalen Namespace. Daher bedeutet ::std::string immer den Typ string aus der C++ - Standardbibliothek.

std::string bedeutet string in Namespace std, wo std wird im aktuellen Bereich nachgeschlagen werden. Wenn also eine Klasse, ein Namespace oder eine Enumeration mit dem Namen std vorhanden ist, findet die Namenssuche möglicherweise 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 
    } 
    } 
} 

Es ist nicht notwendig, die führende :: so lange zu benutzen, wie Sie und Ihre Mitarbeiter stimmen nicht std etwas zu nennen. Es ist nur ein guter Stil.

Verwandte Themen