Отвечая на ваш вопрос, нет, вы не можете вызвать родительский метод foo () через объект класса A, так как единственный метод foo (), который A понимает в своем публичном API, это его собственный метод foo (),Вам, вероятно, нужно подумать о своем дизайне.Если foo () B предоставляет функции, отличные от foo () A, то должен ли один переопределять другой?Или вам нужно подумать о том, что A foo () вызывает B's foo () через parent :: foo () - при условии, что вы хотите, чтобы B foo () вызывался каждый раз, когда вызывается A foo ().Или используйте другой шаблон.Если foo () A не всегда подходит для объекта A, то вы можете посмотреть на Decorator или Strategy patttern's.
Если выНачиная с ОО-программирования, я не могу рекомендовать книгу Gang of Four достаточно высоко.