![]() |
|
Модераторы: bsa |
![]()
|
|
| yorm |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Поскольку в c++ существует возможность создать указатель на функцию, у меня возник вопрос: а возможно ли создать указатель на шаблон?
Допустим, есть некая функция:
хочется иметь на нее указатель (а даже лучше массив указателей на такие функции) и работать с ними. Решил таким образом:
Код работает, но я так понял, что создал указатели на конкретные реализации шаблона? Есть ли возможность передавать указателю еще и класс, который будет подставляться в TTT? |
||||
|
|||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: нет Всего: 10 |
Это страшная штука. Закончится очередным вариантом MFC с их RUNTIME_CLASS
|
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Нет, нельзя. Подобное можно вытворять с .NET/Java "шаблонами"(дженериками, если быть точнее). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
класс передавать нельзя, но ведь обычно работа идёт не с классами, а с объектами классов и операциями, с ними связанными
так вот можно сделать общий базовый класс, а от него отнаследовать шаблонный класс нужные операции (например, создание объекта, возможно, другие операции) реализовать в виде виртуальных методов -------------------- qqq |
|||
|
||||
| yorm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Понятно...
Спасибо за консультацию |
|||
|
||||
| Pashik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.7.2008 Репутация: нет Всего: нет |
|
|||
|
||||
| Pashik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.7.2008 Репутация: нет Всего: нет |
Если нужно сохранять указатель, можно обернуть, например, так:
Исследуй и используй хорошие библиотеки, типа boost, там таких заманух навалом. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |