Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вызов конструктора и деструктора с использованием пула - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать шаблон класса очередь, и сделать к типу char спецификацию http://www.cyberforum.ru/cpp-beginners/thread1244428.html
по заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон класса я написал и он работает, однако отдельное описание...
C++ Где в приведенном коде переменные хранят свои значения Друзья, помогите разобраться с объектами. Например, где, созданные в этом листинге 3 объекта - а, b и с, после инициализации с помощью конструктора по умолчанию, физически хранят свои значения? ... http://www.cyberforum.ru/cpp-beginners/thread1244424.html
C++ Помогите найти программу решения систем алгебраических уравнений методом Зейделя
Ребята, помогите найти программу решения систем алгебраических уравнений методом Зейделя. Код нужен на С++ или на С#. Переделывать с паскаля, с джавы или еще с чего-то нет не времени не сил. Нашел...
При релизе программы не падают фигуры по таймеру C++
Извините, если тема повторяется, но при отладке приложения все нормально(в моем приложении падают фигуры сверху вниз при каждом тике таймера ), при релизе программы они не падают. это странно. Либо...
C++ Запись в начало файла http://www.cyberforum.ru/cpp-beginners/thread1244360.html
Здравствуйте мне нужно записать слово "zashivrovano" в начале каждого файла: я так понял алгоритм следующий: 1) Создаем новый файл 2) Пишем в него слово Zsdhifrovano 3) Дописать данные из...
C++ Создать двумерный массив, каждый элемент которого задается случайным образом Если вкратце, нужно создать двумерный массив, каждый элемент которого задается случайным образом. Вот моя программа: #include <iostream>; #include <cstdlib>; #include <ctime>; using namespace... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335

Вызов конструктора и деструктора с использованием пула - C++

19.08.2014, 12:28. Просмотров 289. Ответов 4
Метки (Все метки)

У меня есть некоторая область памяти (указатель на её начало и размер в байтах), часть которой необходимо превратить в объект. У объекта есть конструктор, который корректно инициализирует все поля, а так же деструктор, освобождающий всё, что было занято при создании объекта (к примеру, освобождает мьютекс и очищает строку).
Вопрос: как вызвать конструктор и деструктор на уже выделенной памяти?
Что делаю я:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
struct Object
{
  Object(const Mutex &m, const char* data) : m_(m)
  {
    m_.lock();
    data_ = clone(data); // возвращает указатель на deep-clone
  }
 
  ~Object()
  {
    m_.release();
    delete data_;
  }
 
private :
  Mutex m_;
  char *data_;
};
 
/*....*/
 
void somefunc()
{
  // p - указатель на выделенный пул
  //Object *o = ( (Object*)(p + poolOffset) )->Object(mutex, data) // примерно так хотелось бы сделать, ибо метода init() не предусмотрено, а инициализировать объект надо, при этом не выделяя дополнительной памяти
  // o->~Object(); // для де-инициализации объекта без освобождения памяти
}
Как сделать то, что показано в somefunc()?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru