You use the resolution scope operator wherever you use a member of namespace std. Yes it is a lot of extra typing, but it makes sure that you want to use that particular member of std rather than a user defined member of something else. Say you want to declare a string variable from the std namespace:
Code:
std::string sSomeVar;
But you create your own string class, and want to declare an object of that string:
Code:
class string
{
/*Class members here*/
};
string sMyStringObject;
If you use the namespace std, and want to declare an object of your class, the compiler will get confused and most likely spit out an error:
Code:
using namespace std;
string sSomeVar; /*String from std namespace*/
string sMyStringObject; /*Object of class*/
/*Compiler doesn't know what string class to pick!*/
Conclusion: safer to use the scope resolution operator ::