Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для чего в C++ был включен оператор размещения new 
:(
    Опции темы
bsa
Дата 25.8.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(xvr @  25.8.2010,  16:52 Найти цитируемый пост)
это черевато как минимум утечками ресурсов.

Это максимум, а не минимум.
PM   Вверх
Abyx
Дата 25.8.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 5
Всего: 10



где-то видел реализацию паттерна "состояние"
(код с ошибками)

Код

class StateBase
{
    virtual ~StateBase() {}
}

class StateA
{
   .....
}

class StateB
{
   .....
}

union States // позволяет убедиться что места хватит
{
   StateA a;
   StateB b;
}

    //.... создаем
    StateBase* state = (StateBase*)new States;
    // и раздаем указатели другим объектам

   // в какой-то момент меняем состояние
   state->~StateBase();
   new((void*)state) StateB;


разумеется то же можно сделать через обертку с volatile указателем
PM MAIL   Вверх
bsa
Дата 25.8.2010, 22:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Abyx, слишком небезопасный "паттерн".
PM   Вверх
Abyx
Дата 25.8.2010, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 5
Всего: 10



bsa, с паттерном все в порядке (у ГоФ можно посмотреть как его надо делать по-нормальному),
да и с этой реализацией вобщем-то тоже все ОК - union обеспечит нужный размер.
PM MAIL   Вверх
xvr
Дата 26.8.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(bsa @ 25.8.2010,  19:59)
Цитата(xvr @  25.8.2010,  16:52 Найти цитируемый пост)
это черевато как минимум утечками ресурсов.

Это максимум, а не минимум.

Это не максимум - может быть и хуже. Например объект мог в деструкторе производить некоторые вычисления и результат записывать в файл (который там и создавался). В результате получим утечку ресурсов и отсутствие файла с результатами.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.