Polymorphism
Recall that the objects in_stream and out_stream both have member functions named open
Since they belong to different classes (ifstream and ofstream respectively), open refers to different functions
In other words, the underlying class determines meaning
As previously noted, the use of the same function name to mean different things is called polymorphism