virtual-inherit in cpp