Предположим, что мне предоставлена библиотека С++, полная наследования. Мне предоставляется функция Base*
в функции, когда я знаю, что она фактически указывает на объект Derived
и Derived
наследует Base
. Но я не знаю, какое это наследство (public/protected/private). Я также не знаю, есть ли виртуальная функция в иерархии.
Учитывая эту ситуацию, , не глядя на исходный код/документацию из Base
и Derived
, какой листинг следует использовать? Или я должен сначала проконсультироваться с кодом/документацией, чтобы убедиться в полиморфизме?
Фон
Я пишу changeEvent
функцию QMainWindow
в Qt 4.7. Функция changeEvent
принимает QEvent*
, которую я могу передать другому типу, зная QEvent::type()
. Мне было интересно, следует ли использовать static_cast
или dynamic_cast
.
Спасибо.