Dragons be here: if you call another constructor, the compiler initializes a temporary local object; it does not initialize "this" object. You can combine both constructors by using a default parameter, or you can share their common code in a private "init()" member function.