Здравствуйте, Лазар Бешкенадзе, Вы писали:
ЛБ>Вот ты говоришь здесь есть виртуальная диспетчеризация а здесь ее нет а я не видел таких различий в стандарте, ты "выше даешь определение виртуальности," а я не видел такого определения в стандарте.
А книжка не текст стандарта обсуждает.
ЛБ>В стандарте делается различие между виртуальным вызовом и статическим, а твоих определений там нет.
И я не текст стандарта обсуждаю.
ЛБ>И под виртуальной диспетчеризацией я понимаю
Мне фиолетово что вы под виртуальной диспетчеризацией понимаете, т.к. речь идет не о вас, а о том, что написано в обсуждаемой книге. А там написано о сюрпризах, которые могут поджидать людей, по незнанию предполагающих, что в C++ вызов виртуального метода в конструкторе/деструкторе будет вести себя так же, как вызов оного метода в любом другом месте, и что в C++ будет совсем другое поведение, нежели во многих других языках с поддержкой ООП -- Java, C#, Ruby, Python). О чем автор буквально и пишет:
В конструкторах и деструкторах в C++ виртуальная диспетчеризация методов не работает (В других языках — например, в C# или Java — наоборот, что доставляет свои проблемы).
PS. Мне, блин, сложно понять почему кто-то доколупался к этому разделу книги. Я сам в свое время наступил на те же грабли. И с другими языками поработал, в которых поведение виртуальных методов в конструкторе отличное от C++ного. Поэтому то, что написано в этом разделе воспринимается просто, понятно и достоверно. А желающие доколупаться до букв идут лесом.