Constructor initializers (described in “Initializing Bases and Members” in Chapter 11, on topic ) are evaluated in the scope of the outermost block of the constructor for which they are specified. Therefore, they can use the constructor's argument names.