Некоторое время назад я играл с кучей операторов кастинга, что, по-видимому, в тот момент я не получал.Я просматривал свой код сейчас и увидел следующее:
Base(Derived &p_derived) : m_state(static_cast<Base>(p_derived).m_state){}
Я думаю, что теперь я получил лучшее понимание приведения указателей и ссылок благодаря очень хорошему ответу здесьstackoverflow, но теперь есть вовлеченные объекты.Что именно происходит, когда ссылка приводится к объекту?Или что, если p_derived был сам объект, а не просто ссылка?Будет ли это создавать новые объекты, и если да, как они будут созданы?Заявленное значение не должно знать, что оно на самом деле происходит от Base.В другом месте я пытался выполнить статическое приведение из Derived * к Base *, но это не должно компилироваться из-за несовместимости типов для этой единицы перевода.