о Тор становится однозначным,
Автор admin Вторник, 16 июня 2009 11:32
о Тор становится однозначным, потому что существует только один объект Тор, к которому может осуществляться преобразование. Результат выполнения этой программы выглядит так: 36 1.2.3.4 1245032 1 1245060 1245032 Выведенные адреса наводят на мысль, что в этой конкретной реализации подобъект Тор хранится в конце полного объекта (хотя на самом деле неважно, где именно он находится). Преобразование к void* через dynamic_cast всегда дает адрес полного объекта. Хотя с технической точки зрения это незаконно2, при удалении виртуального деструктора (и dynamic_cast, чтобы программа компилировалась) размер Bottom уменьшается до 24 байт. Похоже, достигается экономия в размере трех указателей. Почему? Не стоит воспринимать эти числа слишком буквально. В других компиляторах добавление виртуального конструктора увеличивает размер объекта всего на четыре байта. Наверное, эти секреты могут раскрыть только сами разработчики компиляторов. А мы лишь можем сказать, что при множественном наследовании производный объект должен вести себя так, словно он содержит несколько таблиц указателей VPTR, по одному для каждого из его неп
Комментарии закрыты.
Последние комментарии