Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Шаблоны  (Прочитано 11487 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AIV
Гость
« : 11-08-2004 07:05 » 

Подскажите пожалуйста можно ли определить параметр шаблона класс или простой тип?
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #1 : 11-08-2004 07:17 » 

AIV,  вообще то, как я понимаю, в С++ класс или простой тип - то и то является типами, один встроенный, другой пользовательский. Разница между ними весьма условна и компилятору пофиг, пользователь определил тип иль он уже встроен. Те разницы нет, я так понимаю данный вопрос.
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
AIV
Гость
« Ответ #2 : 11-08-2004 07:22 » 

Проблема следующая:
  я malloc'ом распределяю память под переменную типа T и мне надо если это класс вызвать конструктор класса. Соответсвенно для простых типов конструкторов нет.... и для того чтобы определить вызывать конструктор или нет надо знать тип Т  класс или нет.
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #3 : 11-08-2004 07:28 » 

AIV, ошибаешься стандартные типы также имеют конструкторы Улыбаюсь
следующие записи эквивалентны:
int i = 2;
int i(2);
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
AIV
Гость
« Ответ #4 : 11-08-2004 07:48 » 

Очень биг спасибо за науку!!!! Отлично
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #5 : 11-08-2004 07:52 » 

AIV, у големов нет проблемов . Заходи. Отлично
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
Serega
Гость
« Ответ #6 : 11-08-2004 08:25 » 

Также можно использовать type_traits
Записан
Pu
Большой босс

ru
Offline Offline
78


« Ответ #7 : 11-08-2004 08:59 » 

Serega,  Можно чуть поподробнее? плизз!   Вот такой я вот
Записан

Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 11-08-2004 11:14 » 

AIV, рисковый парень, malloc'ом пользоваться для объектов.  Можно получить по башке, если компилятор что-нить к объекту цепляет.

Почему бы не пользоваться 'new'?
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #9 : 12-08-2004 13:59 » new

а пробовал?
allocator<T>::constract
uninitialized_fill
raw_storage_iterators

читай советы 10-11 в книге "Эффекстивное использование STL" (Effective STL)
Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #10 : 14-08-2004 07:24 » 

new может получать адрес уже выделеной под объект памяти и создавать в её объеме структуры объекта также вызывая конструктор.
Код:
void *ptr = malloc(sizeof(sometype));

sometype *vptr = new (ptr) sometype;

......................

vptr->~sometype();
free(ptr);

« Последнее редактирование: 30-11-2007 22:17 от Алексей1153++ » Записан

Странно всё это....
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines