Не, не слабо. Действительно все будет хорошо. Забираю наезд на шаблоны для случая статического создания объектов. :-)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
Отправлено
homekvn
29 ноября 2006 г. 16:38
В ответ на:
Na chet shablonov u Vas podhod stranny - a slabo sdelat' odin list(.Base*.) ili list<Base&> i s nim vozit'sya :-)?
отправлено andy_P 29 ноября 2006 г. 15:37
Составить ответ
|||
Конференция
|||
Архив
Ответы
а динамический темплейтный объект чем хуже? а с наследием классов - тоже не пойму
—
yes
(29.11.2006 19:29
87.236.81.130
, 508 байт)
Проблема в том, что на этапе компиляции мы можем не знать, какие классы будут созданы (+).
—
homekvn
(29.11.2006 20:29
212.185.161.237
, 821 байт)
мне кажется, что правильно передать тип объекта можно через шаблон
—
yes
(30.11.2006 13:37
87.236.81.130
, 69 байт)
Да вот мне кажется (+)
—
homekvn
(30.11.2006 15:34
212.185.161.237
, 239 байт)
плохо, что указатель на функцию нужно в void * (ну или base_class *) превращать - это, имхо, всеравно что микроскопом тараканов давить...
—
yes
(30.11.2006 17:36
87.236.81.130
,
пустое
)
А зачем указатель на функцию в void* переводить? Вот typedef Base_Class* (*TBase_Class_CreateFunc)() - это уже другое дело. Только что в этом такого плохого? Универсальный подход.
—
homekvn
(30.11.2006 18:02
212.185.161.237
,
пустое
)
вся абсракция и защита данных летит в ж. вернут Вам указатель на зеленого крокодила, а Вы его в Base_Class*
—
yes
(30.11.2006 19:29
87.236.81.130
, 119 байт)
Ну-у-у! (+)
—
homekvn
(30.11.2006 20:37
212.185.161.237
, 436 байт)
Да и потом, даже если и вернут мне фигню, то (+)
—
homekvn
(30.11.2006 22:04
212.185.161.237
, 602 байт)
с темплэйтами все проверяется компилятором при сборке, собственно нафига еще все эти сложности С++ нужны
—
yes
(01.12.2006 13:03
87.236.81.130
, 144 байт)
Да ничего не получится у Вас с темплейтами. Если Вы класс собираетесь создать динамически (т.е. когда заранее неизвестно, экземпляр какого класса-наследника базового класса будет создан), то единственное решение - это передача указателя на функцию, возвращающую указатель на созданный класс. Как Вы эту функцию будете реализоваывать - в явном ли виде, или описывая ее через какой-нибудь класс, шаблон или еще что-нибудь - роли не играет. Но без этой функции ничего не получиится. (+)
—
homekvn
(01.12.2006 13:50
212.185.161.237
, 687 байт)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание