|
|
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
Не хочется передавать классу B указатель на класс A целиком, т.к. ему понадобиться вызывать только один метод класса A. Можно ли передать ему указатель на нужную ф-ию класса А ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2007, 13:59 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
1. И откуда эта член-функция в таком случае должна получать неявный параметр this? Или она статическая? 2. Какая разница, какой указатель. Они по размеру скорей всего совпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2007, 14:53 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
grieg1. И откуда эта член-функция в таком случае должна получать неявный параметр this? Или она статическая? 2. Какая разница, какой указатель. Они по размеру скорей всего совпадут. 1. Если бы я знал откуда, то знал бы как сделать)) Нет, она не статическая. 2. Разница не в размере. Просто мне было бы так удобно, поэтому я предположил, что может есть такой механизм, о котором я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2007, 14:59 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
А вот не выйдет 1) данные все равно принадлежат бъекту класса 2) а ежели у тебя полиморфный объект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2007, 21:48 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2007, 22:39 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
TubrikНе хочется передавать классу B указатель на класс A целиком, т.к. ему понадобиться вызывать только один метод класса A. Можно ли передать ему указатель на нужную ф-ию класса А ? В стандартном (ISO) C++ можно только так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Однако в Boland C++ Builder (версия 6 и выше) должно существовать нестандартное расширение, позволяющее вызывать функцию из класса передавая только один указатель. Таким методом там обьявлены все события для форм (Event'ы), рекомендую залезть в исходники/примеры и посмотреть, например, как выглядит обьявлениеTNotifyEvent. В Delphi это было "function of object", как обьявлено в билдере - можете посмотреть сами. Шутка в том, что в Delphi 5-6 такой указатель занимал 8 байт вместо 4х на 32 битной системе, так как он внутренне представлен как указатель на базу класса (4 байта) и указатель на метод класса (ещё 4 байта). Так что особой разницы нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 02:28 |
|
||
|
Можно ли передать классу A функцию-член класса B ?
|
|||
|---|---|---|---|
|
#18+
Tubrik пишет: > Не хочется передавать классу B указатель на класс A целиком, т.к. ему > понадобиться вызывать только один метод класса A. Можно ли передать ему > указатель на нужную ф-ию класса А ? То, что тебе нужно - Interface. Это паттерн проектирования такой. Называется в GoF-е "Brige". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2007, 22:01 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34429208&tid=2029129]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
435ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 723ms |

| 0 / 0 |
