Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Может ли C ++ определить процедурный тип для класса, как в Delphi (добавляет ключевое слово объекта после процедурного типа). Например: тип Код: pascal 1. 2. 3. 4. Как это сделать в C ++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:51 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Kiril, указатель на член класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:57 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Kiril, не надо изобретать велосипед! Всё это уже есть в Embarcadero C++ Builder. Смотрите заголовочные файлы и RTFM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:56 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
KirilКак это сделать в C ++. В стандартном С++ - никак. У boost есть пара уродливых темплейтов на этот случай. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:39 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Спасиба. Я знаю, как это сделать в C ++ Builder и Delphi. Но я хочу знать, как это делается на C ++. На переменной в обекте на которым, назначат нестатические методы наследникам и вызваю это методами через переменной обекте. То есть, я хочу это сделать, то же самое, что и обработчики событий в Delphi и C ++ Builder. Как это сделать в C ++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:41 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Kirilтип Объект TNotifyEvent = procedure (отправитель: TObject); var OnClick: TNotifyEvent; Как это сделать в C ++. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 14:06 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Я все понял. То, что я хочу делать с инструментами C ++, не очень эффективно и нужно искать другие способы, если это возможно. Если я должен сделать это, как Delphi (C ++ Builder), используя указатель на член класса , я должен написать класс(delegate), содержащий указатель на объект, и указатель метода этого объекта, который я хочу вызвать. Код: plaintext 1. 2. 3. 4. 5. Или использовать <functional> , что не очень эффективно. Спасиба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:37 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Kiril, Это для обработки OnClick вам не хватает эффективности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 17:36 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Да этот пример эффективен. Но я хочу перевести код, написанный на C ++ Builder, где эти методы класы могут часто менятся програмно. Класы написанный на C ++ Builder, не может легко переделать на C++. Мне придется изменить параметры некоторых методов этих классов(есть много изменений). Так что теперь я думаю, как вообще избавиться от указателей на методы. Сейчас я ищу другое стандартное решение, который, не основанны на Object Pascal. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 18:15 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
KirilМожет ли C ++ определить процедурный тип для класса, как в Delphi (добавляет ключевое слово объекта после процедурного типа). Например: тип Объект TNotifyEvent = procedure (отправитель: TObject); var OnClick: TNotifyEvent; Как это сделать в C ++. Указатель на функцию. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2018, 21:10 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
MasterZivУказатель на функцию. Почувствуй разницу между "указателем на функцию" и "указателем на метод объекта (даже не класса)". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2018, 22:18 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov.... "указателем на метод объекта (даже не класса)".Эмм, а это еще что такое ? В терминах С++ пжлст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 00:37 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivУказатель на функцию. Почувствуй разницу между "указателем на функцию" и "указателем на метод объекта (даже не класса)". Где там указатель на метод ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 11:57 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
А лямбды для решения проблемы не подойдут? По-моему, отлично подходят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 05:12 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
KirilAnatoly Moskovsky, Да этот пример эффективен. Но я хочу перевести код, написанный на C ++ Builder, где эти методы класы могут часто менятся програмно. Класы написанный на C ++ Builder, не может легко переделать на C++. Мне придется изменить параметры некоторых методов этих классов(есть много изменений). Так что теперь я думаю, как вообще избавиться от указателей на методы. Сейчас я ищу другое стандартное решение, который, не основанны на Object Pascal. Мне кажется ты капризничаешь. Обычные возможности ООП покрывают необходимость что-то менять программно. Почитай про шаблон Strategy например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 07:56 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
mayton, Код: plaintext 1. The implementation of the template is relatively simple: it has a reference to T, which is the class whose member function is to be called, a constructor and a member function called execute(), which invokes the callback member function: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 20:27 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
KirilAnatoly Moskovsky, Да этот пример эффективен. Но я хочу перевести код, написанный на C ++ Builder, где эти методы класы могут часто менятся програмно. Класы написанный на C ++ Builder, не может легко переделать на C++. Мне придется изменить параметры некоторых методов этих классов(есть много изменений). Так что теперь я думаю, как вообще избавиться от указателей на методы. Сейчас я ищу другое стандартное решение, который, не основанны на Object Pascal. В данной постановке наверное никак . Используемый вами ( билдером) патерн без указателей на функции ИМХО не возможен. Этот патерн краеуголный камень в упралении майкрорсофтовскими окнами, и виден из любого высокоуровневого иструмента программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 21:08 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
В книге(Новые сложные задачи на C++ Автор: Саттер Г.) есть подробное описание: Задача 35. Обобщенные обратные вызовы 221 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 21:18 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
KirilВ книге(Новые сложные задачи на C++ Автор: Саттер Г.) есть подробное описание: Задача 35. Обобщенные обратные вызовы 221 Kirilгде эти методы класы могут часто менятся програмно. ИМХО Вангую заипетесь изменять кучу класов для небольшой модификации функционала и вернетесь к указателям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 21:43 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
Kiril, я не услышал вопроса. Ты кидаешь цитаты из книжки. Мне комментировать их? Или мне их читать к сведению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 22:12 |
|
||
|
Oпределить процедурный тип для класса
|
|||
|---|---|---|---|
|
#18+
mayton, Нет. Я понимаю, что эти классы, написанные на C ++ Bulder, я должен переписать их на стандартном C++ снова. Димитрий Сибиряков оказался прав. Его ответ: "Kiril Как это сделать в C ++. В стандартном С++ - никак. У boost есть пара уродливых темплейтов на этот случай." Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 23:30 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=22&tid=2017965]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
3ms |
| others: | 304ms |
| total: | 439ms |

| 0 / 0 |
