![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
В общем есть шаблон класса, получающий 2 параметра, тип владельца - Owner, и указатель на метод владельца - callback
проблема в том, что callback должен получать ссылку на connection... так по крайней мере задумано |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
У тебя в типе параметра callback'а получается бесконечная рекурсия. Нельзя ли сделать какой нибудь базовый класс для connection (не темплейтный вообще или по крайней мере без типа самого callback'а в параметрах темплейта) и передавать именно его в параметре callback'а ? |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
тогда уж проще обойтись наследованием...
|
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
Может, можно обойтись так:
-------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
так сделать можно, но тогда клиент сможет передать любой callback, что не очень хорошо... |
|||
|
||||
| Lycifer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
Почему в конструктор нельзя передать?
А если typeid использовать, ну и кидать исключения(разрушать объект)? |
|||
|
||||
| Lazin |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
потому-что тип заранее не известен, класс должен работать с некоторым типом, и некоторым его методом, получающим ссылку на connection Добавлено @ 13:01
как выяснилось нельзя, так как теперь, что-бы инстанцировать шаблон, нужно написать что-то вроде
Это сообщение отредактировал(а) Lazin - 21.7.2008, 13:02 |
||||||
|
|||||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
Да, действительно, тогда предлагаю не мучиться с нешаблонным параметром шаблона, а перетащить этот указатель на член в рантайм. Как предложил Lycifer:
-------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
в общем переписал по другому, теперь у меня callback поучает хэш, а не указатель на вызвавший объект, а по хэшу уже определяется объект... как-то так
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |