Показать сообщение отдельно
Старый 06.03.2008, 18:10   #13  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Кажется, рано обрадовался. Метод базового класса таким образом хоть и вызываются, зато теряются объекты объявленные на верхнем уровне.
Скажем, есть у нас объект некого класса, объявленный в ClassDeclaration деда. Этот объект в процессе работы инициализируется в наследнике нижнего уровня. Затем нам требуется вызвать метод деда, в котором с этим объектом что-то делаем (например, вызываем какой-нибудь его метод). Так, если проделать операции внутри наследника:
X++:
   void C::foo()
   {
    A pBaseOfThis; 
    ; 
    // здесь что-то делаем, чтобы инициализировать _объект_, объявленный в деде

   pBaseOfThis = new A(this); 
   pBaseOfThis.foo();  // здесь вызывается текущий метод деда, в котором идет обращение к      _объекту_
  }
то в результате окажется, что _объект_ не инициализирован. Вот такие вот дела....