о Тор становится однозначным,

Автор admin Вторник, 16 июня 2009 11:32

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


Комментарии закрыты.