Кажется, рано обрадовался. Метод базового класса таким образом хоть и вызываются, зато теряются объекты объявленные на верхнем уровне.
Скажем, есть у нас объект некого класса, объявленный в ClassDeclaration деда. Этот объект в процессе работы инициализируется в наследнике нижнего уровня. Затем нам требуется вызвать метод деда, в котором с этим объектом что-то делаем (например, вызываем какой-нибудь его метод). Так, если проделать операции внутри наследника:
X++:
void C::foo()
{
A pBaseOfThis;
;
// здесь что-то делаем, чтобы инициализировать _объект_, объявленный в деде
pBaseOfThis = new A(this);
pBaseOfThis.foo(); // здесь вызывается текущий метод деда, в котором идет обращение к _объекту_
}
то в результате окажется, что _объект_ не инициализирован. Вот такие вот дела....