Careful readers will note that this program uses std::cout
and std::endl
rather than just cout
and endl
. The prefix std::
indicates that the names cout
and endl
are defined inside the namespace named std
. Namespaces allow us to avoid inadvertent collisions between the names we define and uses of those same names inside a library. All the names defined by the standard library are in the std
namespace.
One side effect of the library’s use of a namespace is that when we use a name from the library, we must say explicitly that we want to use the name from the std
namespace. Writing std::cout
uses the scope operator (the ::
operator) to say that we want to use the name cout
that is defined in the namespace std
. § 3.1 (p. 82) will show a simpler way to access names from the library.