Is it legal for a class to have a member with the same name as one of its base classes? If it is legal, how can these items be used in ctor initializers in a constructor?