#include <iostream>
usingnamespace std;
int main() {
int cin;
// cin >> cin; //Whoops!
std::cin >> cin; //Here you still need the prefix, so why bother confusing yourself
...
}
Ideally, no one should ever name a variable or class with the same name as something in the standard library. With that said, you still shouldn't count on other people to not make mistakes.
Usually, yes - except when dealing with the std namespace.
Fully qualifying names in the std namespace has little practical advantages, but is a tremendous waste of time.