Looking at what you've got again, and looking at the original problem again, I will agree that the base constructor is run -- the base constructor is always run, first, before a derived object is constructed. I don't see any derived-class methods that can change the values of x and y, nor for that matter do I see any base-class methods, save the two-argument constructor (which presumably would not be called by the zero-argument derived-class constructor). So how do you expect this x and y to change?