Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2017, 08:01   #1
zefir2к17
 
Регистрация: 15.04.2017
Сообщений: 5
По умолчанию один кастомный аллокатор памяти для потомков класса, как?

здравствуйте, у меня есть класс Shape
и от него может быть унаследовано множество других классов
например
Point
Box
Circle
Triangle

как можно для всех этих потомков, написать один аллокатор памяти на всех, чтобы они лежали в памяти рядом друг за другом ?
zefir2к17 вне форума Ответить с цитированием
Старый 15.04.2017, 09:08   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Напишите operator new в родительском классе Shape, тогда будет вызываться для всех наследников. Не забудьте так же operator delete.
waleri вне форума Ответить с цитированием
Старый 15.04.2017, 11:00   #3
zefir2к17
 
Регистрация: 15.04.2017
Сообщений: 5
По умолчанию

спасибо, нашел статью как этот new / delete делается http://www.amse.ru/courses/cpp2/2011_03_21.html

мне думается что нужно в new обернуть еще и memPool менеджер, наподобиии того что приводиться тут
https://www.codeproject.com/Articles.../C-Memory-Pool

все это для того что я очень хочу чтобы мои классы были по размещению в памяти очень дружелюбны/оптимальны к кешу процессора.

Последний раз редактировалось zefir2к17; 15.04.2017 в 11:03.
zefir2к17 вне форума Ответить с цитированием
Старый 15.04.2017, 11:55   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от zefir2к17 Посмотреть сообщение
как можно для всех этих потомков, написать один аллокатор памяти на всех, чтобы они лежали в памяти рядом друг за другом ?
Наверное, только выделение пула вида "чтобы точно хватило",
и менеджера, который бы этим пулом управлял.
Но если пула не хватит - всё полетит к какой-то бабушке.

Можете почитать это на досуге:
https://habrahabr.ru/post/274827/
https://habrahabr.ru/post/270009/
https://habrahabr.ru/post/162187/
https://habrahabr.ru/company/xakep/blog/257893/
Помнится, была на хабре еще
полезная статья на эту тему,
но не нагуглилась почему-то.
Цитата:
все это для того что я очень хочу чтобы мои классы были по размещению в памяти очень дружелюбны/оптимальны к кешу процессора.
Часто данные в классах - лишь указатели на нужные данные,
но Вам виднее что у Вас и как устроено.
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Gtk# - как сделать кастомный titlebar? Gilorn C# (си шарп) 0 09.10.2015 15:02
C++. Как в классе-потомке несколько раз вызвать один и тот же конструктор из базового класса? fly0f Помощь студентам 6 17.04.2012 01:49
Освобождение памяти от экземпляра класса Mixim Общие вопросы .NET 8 05.01.2011 17:27
Один экземпляр класса Лубышев Общие вопросы .NET 2 31.10.2008 20:57