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

Как получить объект (не указатель), используюя перегруженный new? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ некорректно читается файл http://www.cyberforum.ru/cpp-beginners/thread767742.html
хочу написать некое подобие телефонного справочника #include <iostream> #include "windows.h" #include "io.h" #include "stdio.h" using namespace std; struct Abonent {
C++ Чем отличается теория графа (дерево или древо) от сети? Выдали экзамен с такими вопросами, если не сложна напишите ответы я сам себя проверю) 1) Какие структуры элементов позволяют добавить элемент в самое начало? статический массив стек как по русски... http://www.cyberforum.ru/cpp-beginners/thread767732.html
Интерпретатор C++
Почитал книгу по написанию компиляторов и интерпретаторов Dragon Book. На 90+ страницах есть листинг простого интерпретатора, который я третий день не могу собрать. Основная проблема в файле init.c....
Заданы три четырехугольника координатами своих вершин. Выяснить, есть ли среди них пересекающиеся. Построить графическую картинку C++
1.Заданы три четырехугольника координатами своих вершин. Выяснить, есть ли среди них пересекающиеся. Построить графическую картинку. Добавлено через 1 час 24 минуты Ну же, народ, помогите :(
C++ undefined reference to `CList<int>::show()' http://www.cyberforum.ru/cpp-beginners/thread767661.html
привет ! написал этот код в eclipse #ifndef CLIST_H_ #define CLIST_H_ template<class T> class CList { public: CList(); void push_back(T);
C++ Ребят доработайте код программы (программа сортировки чисел методом Шелла) Нужна помощь Есть программа сортировки чисел методом шелла ее надо дописать чтоб она спрашивала 1 - введите сами 2 – рандом Если выбирает 1: то Введите размер массива: Введите сам массив (... подробнее

Показать сообщение отдельно
IvanPryamoy_2
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 23

Как получить объект (не указатель), используюя перегруженный new? - C++

21.01.2013, 12:07. Просмотров 536. Ответов 6
Метки (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MyClass
{
void* const hHeap;
int* Array;
 
public:
    MyClass(cint NumberArray_V, void* const hHeap_V): hHeap(hHeap_V) {Array = ::HeapAlloc((HANDLE) hHeap, NULL, NumberArray_V*sizeof(int));}
 
    ~MyClass() {::HeapFree((HANDLE) hHeap, NULL, (LPVOID) Array);}
 
    void* operator new(size_t count, void* const hHeap) {return ::HeapAlloc((HANDLE) hHeap, NULL, count);}
};
 
 
void Test(void* const hHeap)
{
    MyClass* p = new(hHeap) MyClass(5, hHeap); //указатель!!! А хочется иметь объект!
}
Как добиться и перегрузки оператора "new" и получение полноценного объекта?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru