Understanding C++ stream operators and virtual functions
This is an easy C++ language-knowledge question that tests whether you understand how the left-shift operator (<<) behaves in the context of output streams, and how it interacts with virtual function dispatch. It's the kind of foundational question designed to expose gaps in a candidate's mental model of operator overloading and object semantics.
To answer it correctly, you need to trace through the code carefully, paying attention to which operators are being called and what types are involved in each expression. The question rewards precision in understanding C++ semantics over any complex algorithmic insight.
- Operator overloading resolution
- Stream insertion and the
<< operator - Type conversions and implicit casts
- Object lifetime and reference semantics