Vlad G wrote:DenisM wrote:Hamster wrote:Можете. Можете даже cast'овать this к типу родительского класса и начать вызывать его методы.
Только невиртуальные
виртуальные в конструкторе не работают
Я бы сказал, что работают, но неправильно, если из конструктора ( или деструктора ) вызывается виртуальный метод, перегруженный в порожденном классе. Пока не закончен вызов конструктора, vtbl указывает на таблицу виртуальных функций этого класса, а не порожденного. Поэтому вместо перегруженного метода в порожденном классе вызовется соответствующий метод из этого ( ну или базового, если в этом метод не перегружен )
Да, кстати, в VC выдается warning при использовании this в constractor'е, именно для того, чтобы не забыть про эту особенность