Реализация макета объектной модели - PullRequest
1 голос
/ 21 октября 2011

Стандартизирует ли стандарт детализацию реализации объекта? что я слышал, что это отличается от некоторых компиляторов. Даже если это так, стоит ли получать lippman «внутри объектной модели c ++» и как?

1 Ответ

3 голосов
/ 21 октября 2011

Я не могу говорить о книге, потому что я не читал ее лично, но это общая рекомендация, поэтому она не повредит.

В стандарте он не предписывает конкретный макет объекта, а только накладывает ограничения на поведение программы, но понимание даже одной реализации поможет вам понять, что происходит под прикрытием.В большинстве случаев разные компиляторы используют сходные подходы.

В качестве примера, механизм диспетчеризации динамических функций определяется не стандартом, а только поведением, но все компиляторы реализуют его на основе таблиц виртуальных функций.Расположение таблицы (то есть, как методы организованы там, какие дополнительные данные могут быть до / после таблицы) может отличаться, но проблема динамической диспетчеризации одинакова, и решения достаточно похожи, поэтому понимание одного из них обычно поможет вам понятьобщая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...