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