Show Lecture.UsingNamespaceStd as a slide show.
CS253 Using Namespace Std
Namespaces
#include <iostream>
using namespace std;
int main() {
cout << 1/8.1;
return 0;
}
0.123457
Namespaces
#include <iostream>
int main() {
cout << 1/8.1;
return 0;
}
c.cc:4: error: 'cout' was not declared in this scope
Namespaces
- You could, if you wished, just use the full name.
- It’s not pretty.
#include <iostream>
int main() {
std::cout << 1/8.1;
return 0;
}
0.123457
How it works
#include <iostream>
constexpr auto pi = 3.14159;
void cout() {
std::cout << "π=" << ::pi << std::endl;
}
int main() {
::cout();
}
π=3.14159
- No collisions! Library symbols don’t interfere with your symbols.
- Library symbols (cout, vector, endl, exit()) go into
the
std::
namespace.
- User symbols (main(), other functions, global vars)
go into the global namespace.
- Local variables (in a function) aren’t in any namespace.
- Class methods & data don’t go into any namespace—they’re
sort of in the namespace of the class, though we don’t say it
that way.