![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| victor79 |
|
|||
|
программист ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
есть желание сделать обертку для класса, не переписывая ни класс, ни его использование в куче кода. Максимум - попереименовывать класс и его префиксы методов. И единственное препятствие - невозможность перегрузить оператор точка, по подобию как можно это сделать с оператором ->. Есть ли какое решение вопроса в указанных выше рамках или другими минимальными изменениями?
Класс используется и в стековых переменных и через new. общая цель: экземпляры этого класса очень много возвращаются в виде результата функции. При этом происходит вызов конструктора копий и после деструктора возвращенного. Вместо этого сделать обертку, в которой хранить только указатель, а сам объект выделять в конструкторе обертки и распускать в деструкторе, если при этом он не был перемещен в другой экземпляр обертки. Это сообщение отредактировал(а) victor79 - 15.8.2011, 22:33 |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 6 Всего: 10 |
сделать руками делегирование, либо унаследовать интерфейс, но делегирование все-равно придется руками делать
Добавлено через 6 минут и 48 секунд впрочем унаследоваться от него можно на случай если есть какого-либо рода приведения, но лучше от интерфейса |
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
А не подойдут ли для этой цели смартпойнтеры?
-------------------- ![]() |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 6 Всего: 10 |
kosmonaFFFt, объекты кроме всего прочего создаются на стеке..
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |