Re[2]: Проблема с виртуальной функцией
От: PaNov Россия  
Дата: 17.06.02 17:21
Оценка:
Здравствуйте Sergey, Вы писали:

S>Здравствуйте Grenal, Вы писали:


G>>Есть два класса базовый и дочерний. В базовом задана виртуальная функция, в дочернем она переопределяется. Проблема в следующем в конструкторе базового класса я дергую за виртуальную функцию и вызывается функция базового класса, можно ли это как то вылечить, что бы конструкторе базового класса вызывалась реализация метода дочернего?


S>Нельзя. В конструкторе базового класса наследник еще не сконструирован.



Кстати, недавно наступал на аналогичные грабли с точностью до наоборот...
Я в деструкторе базового класса вызывал виртуальную функцию, в надежде что она вызовет функцию, переопределенную в дочернем классе.
К тому времени отрабатывали деструкторы всех дочерних классов и по-всей видимости функции удалялись из таблицы виртуальных функций.
В результате — происходил вызов функции базового класса...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.