Спасибо, но я, признаться, не понял одного (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено homekvn 29 ноября 2006 г. 17:28
В ответ на: Ponyal chto Vy hotite. Po primeru Vashemy v C++ ya by tak sdelal+ отправлено andy_P 29 ноября 2006 г. 17:01

как будет выполнена строчка

if (get_corners() == 4)
return new Square;

если экземпляра класса еще нет - вы ведь его на следующей строке создаете?

А насчет RTTI - так его, насколько я понял, в Си++ официально нет - это лишь приятное расширение, которое в одном компилере может присутствовать, а в другом его нет. Более того, даже в тех компилерах, в которых эта штуковина присутствует, ест она о-о-чень много памяти, поскольку как правило содержит кучу лишней информации. Например, название класса в виде строки. (то есть это конечно приятно, но больно уж накладно). Поэтому эмбеддед-компилеры имеют опцию не включать RTTI. Да и зачем RTTI, если экземпляр класса можно создать, имея лишь указатель на VMT, которая всегда присутствует (для классов, обладающих виртуальными методами)?

А кстати, вот еще вопросик. Не знаете ли как проверить, является ли такой-то объект наследником такого-то объекта (этот "такой-то" объект мне недоступен, его описывал не я и править его не могу)? А то мне это сделать нужно, а как по-человечески это сделать, не обращаясь к VMT (расположение и структура которой строго говоря не документированы), я не знаю.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 12:


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание