in your example, in is a file object, while first and last are string objects?
the >> operator overload:
1- inserts to 'first' the character until white-space is hit?
2- returns the file with its mark pointing to the next character after white-space?
You are correct the operator >> reads until it hits a whitespace , and yeah in was used as an object of type ifstream and the first/last were variable names used to represent strings where you are going to store the names.