Дата : 26-10-07, Птн, 18:06:44
В таком виде это не будет работать, потому что нужно не только конвертировать сабкласс в базисный класс, но и наоборот. Это можно осуществить, если оперировать не с самими классами, а со ссылками на них (references). Ссылка это класс, содержащий pointer на структуру класса. Перед структурой класса помещаем pointer на type info area. Рассмотрим следующий code:
<base class name> x; <subclass name> y;
x=y; y=x;
Переменные x и y содержат ссылки на классы <base class name>_ и <subclass name>_, которые содержат структуры классов. После исполнения инструкции x=y, х содержит ссылку на объект типа <subclass name>_. При исполнении инструкции y=x, проверяется действительно ли x указывает на структуру типа <subclass name>_. В данном случае это так, а если бы это было не так, то исполнение инструкции y=x вызвало бы сообщение об ошибке.
|