|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.04.2013, 15:06 | #1 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
перегрузка new
Вопрос: почему new не может быть виртуальным или даже абстрактным, так чтоб его наследовать?
В целом, конечно, я догадываюсь, что он статический, но все таки, можно ли что-то придумать? Писать одно и тоже в каждом наследнике - лень. Последний раз редактировалось f.hump; 10.04.2013 в 15:11. |
10.04.2013, 15:25 | #2 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Код:
|
|
10.04.2013, 15:40 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а я вот проблемы не понял, new же наследуется помоему.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.04.2013, 15:48 | #4 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
держать в одном месте - это, да.
только, если я правильно понимаю, в предложенной записи New_Operation не будет вызывать new, написанный для IFace, он будет вызывать new<T>. Собственно это и есть проблема - лень писать new<T> для каждого Т. так или иначе, прийдется просто проверить. может просто туплю по теме наследования new. Последний раз редактировалось f.hump; 10.04.2013 в 15:54. |
10.04.2013, 16:02 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Как раз если будет абстрактным, тогда придется в каждом наследнике определять new. Далее, new не может быть виртуалным ибо есть статический член класса.
Унаследуйте все ваши T от одного родителя и переопределите new в этом родителе. Либо просто переопределите new глобальное. В чем собственно проблема? |
10.04.2013, 17:20 | #6 |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
А он наследуется, все норм. Кстати несмотря на то, что он статический, его поведение в принципе вполне себе виртуально, если разработчик знает, как работает виртуальный деструктор.
|
10.04.2013, 17:23 | #7 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
думал про new, как про некий особый метод. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перегрузка << и >> | Arrioh | Помощь студентам | 2 | 02.11.2012 23:54 |
Перегрузка | Shandr71 | Общие вопросы C/C++ | 5 | 15.12.2011 22:16 |
перегрузка [] | monolit111 | Общие вопросы C/C++ | 2 | 10.12.2011 20:25 |
Перегрузка в С++ | anna01 | Общие вопросы C/C++ | 2 | 23.11.2010 22:21 |
перегрузка | DRELORD | Помощь студентам | 1 | 22.04.2010 09:54 |