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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать шаблон класса очередь, и сделать к типу char спецификацию http://www.cyberforum.ru/cpp-beginners/thread1244428.html
по заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон класса я написал и он работает, однако отдельное описание под char вообще ни как не удается описать: #include <iostream> using namespace std; #include <iomanip> template <class T, int maxsize> struct MyStruct { int x; MyStruct<T, maxsize> *Next;
C++ Где в приведенном коде переменные хранят свои значения Друзья, помогите разобраться с объектами. Например, где, созданные в этом листинге 3 объекта - а, b и с, после инициализации с помощью конструктора по умолчанию, физически хранят свои значения? #include <iostream> #include <conio.h> using namespace std; class Z { public: http://www.cyberforum.ru/cpp-beginners/thread1244424.html
C++ Помогите найти программу решения систем алгебраических уравнений методом Зейделя
Ребята, помогите найти программу решения систем алгебраических уравнений методом Зейделя. Код нужен на С++ или на С#. Переделывать с паскаля, с джавы или еще с чего-то нет не времени не сил. Нашел десяток разных реализаций и чуть ли не каждая выдавала свой уникальный ответ на разные входные данные. При этом в интернет онлайн-калькуляторе выдавался еще один уникальный ответ. Я иссяк уже
При релизе программы не падают фигуры по таймеру C++
Извините, если тема повторяется, но при отладке приложения все нормально(в моем приложении падают фигуры сверху вниз при каждом тике таймера ), при релизе программы они не падают. это странно. Либо не работает таймер, либо не работает функция step в которой как раз и добавляется к координатам фигуры 1 единица. void MainWindow::timerEvent(QTimerEvent *) { step(); update(); } ...
C++ Запись в начало файла http://www.cyberforum.ru/cpp-beginners/thread1244360.html
Здравствуйте мне нужно записать слово "zashivrovano" в начале каждого файла: я так понял алгоритм следующий: 1) Создаем новый файл 2) Пишем в него слово Zsdhifrovano 3) Дописать данные из старого файла 4) удалить старый файл
C++ Создать двумерный массив, каждый элемент которого задается случайным образом Если вкратце, нужно создать двумерный массив, каждый элемент которого задается случайным образом. Вот моя программа: #include <iostream>; #include <cstdlib>; #include <ctime>; using namespace std; void massivMinMax(int razmer, int **mas) { //функция, которая ищет максимальный и минимальный элемент на(над) главной и побочной диаганалью подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
19.08.2014, 12:28     Вызов конструктора и деструктора с использованием пула
У меня есть некоторая область памяти (указатель на её начало и размер в байтах), часть которой необходимо превратить в объект. У объекта есть конструктор, который корректно инициализирует все поля, а так же деструктор, освобождающий всё, что было занято при создании объекта (к примеру, освобождает мьютекс и очищает строку).
Вопрос: как вызвать конструктор и деструктор на уже выделенной памяти?
Что делаю я:
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()?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru