What this C++ language-knowledge question tests
This hard question probes deep familiarity with C++ semantics—the kind of subtle behaviour that separates competent engineers from those who truly understand the language's execution model. It asks you to read a code snippet and predict its output precisely, which requires knowledge of scoping rules, object lifetime, initialization order, and potential undefined behaviour.
Candidates typically need to trace through the code mentally, accounting for constructor and destructor calls, stack unwinding, and the visibility of variables at each scope. The "trap" usually lies in a common misconception about how C++ handles a particular language feature—whether that involves RAII, temporary objects, reference binding, or exception safety. Firms use such questions to identify engineers who code from first principles rather than pattern-matching.
- Object construction and destruction order
- Scope and variable lifetime
- Undefined behaviour and implementation-defined semantics
- Move semantics and copy elision