Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Вот такой вопрос возник (я чёто изучение С++ закинул, сейчас решил вернуться к нему), в дэлфи, насколько я помню, в параметрах функции можно указать какой-нить класс, и кроме экземпляра указанного класса без каких-либо ошибок туда можно передать его потомка и всё отработает без ошибок. Так вот, а можно ли так в С++ делать? Сама задача (выдуманная, для себя) состоит в том, что бы создать класс-интерфейс (насколько я понял в С++ нету чистых интерфейсов, а есть абстрактные классы для этого), унаследовать от него несколько других классов, а в функции указать именно его (общего абстрактного предка). То есть мне надо, что бы передаваемый в функцию объект обязательно имел метод loadModel. Я правильно задачу то решаю? Или можно лучше? Если правильно, то не будет ли компилятор ругаться на мою писанину? Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 01:55 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 06:40 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Програмёр, по ссылке на предка естественно можно передавать и потомка, ооп есть ооп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 10:51 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Програмёр, ты код то покажи что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 10:52 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
MasterZivПрограмёр, ты код то покажи что ли... Дык ) Там кода не 2 строчки уже. А что именно увидеть хотите из кода? Суть такая, пытаюсь простенький движок для 3Д игрушек написать (считаю, что на практике обучение всегда быстрее и продуктивнее). А данная часть касалась именно моделей. То есть, я хочу грузить модель с файла и через callback функцию передавать подгруженные данные в экземпляр основного приложения, где ведётся учёт объектов, их прорисовка и т.д. То есть, подгрузку моделей выношу в отдельную библиотеку... Такое себе модульное приложение... С каким типом моделей решил работать, тот модуль и подключил (для облегчения приложения)... Какой тип игрушки пишешь - тот модуль логики и юзаешь. Ну в общем расчёт на универсальность :) Авось дело получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 16:43 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Програмёр, callback функция в ооп -моветон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 19:26 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
MasterZivПрограмёр, callback функция в ооп -моветон. А как лучше делать? :) Но разве в метод одного объекта передавать указатель на другой и потом его пользовать - это плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 20:05 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
MasterZivcallback функция в ооп -моветон. Если бы без колбэков можно было бы обойтись во всех случаях, то их бы никто не использовал - слишком муторные они :) Если согласно алгоритма поток выполнения должен прерваться и продолжиться в другом месте после завершения операции, то это решается именно через колбэки. А ООП тут вообще не причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 21:05 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрMasterZivПрограмёр, callback функция в ооп -моветон. А как лучше делать? :) Но разве в метод одного объекта передавать указатель на другой и потом его пользовать - это плохо? На другой ЧТО ? А лучше делать хотябы интерфейс и указатель на его реализацию, или насделование применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 22:27 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
Если бы без колбэков можно было бы обойтись во всех случаях, то их бы никто не использовал - слишком муторные они :) Они не муторные. Но в ООП есть вещи поприятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 22:28 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
MasterZivПрограмёрпропущено... А как лучше делать? :) Но разве в метод одного объекта передавать указатель на другой и потом его пользовать - это плохо? На другой ЧТО ? А лучше делать хотябы интерфейс и указатель на его реализацию, или насделование применять. ой :) не дописал... на другой = на другой объект (показалось очевидным, видимо ошибся :)) ) Так ведь это же и делаю :) Вопрос именно об этом задавал, можно ли так. Не знаю, может неверно выразился, но считаю метод объекта, который передан как параметр в функцию, callback методом :) Потому и обозвал функцию callback-функцией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 22:49 |
|
||
|
А как насчёт наследников в параметрах функций?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Если бы без колбэков можно было бы обойтись во всех случаях, то их бы никто не использовал - слишком муторные они :) Они не муторные. Ага, вообще не муторные :) Предлагаю сравнить один и тот же алгоритм (отправка HTTP запроса и прием ответа) без колбэков и с ними. http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/http/client/sync_client.cpp http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/http/client/async_client.cpp Абсолютно линейный код превращается в месиво перекрестных ссылок и существенно увеличивается в объеме. Это значит на порядки меньшая читаемость кода. Единственное из-за чего колбэки нужны в этом примере, это производительность асинхронного кода при распараллеливании нагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2013, 01:31 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=68&tid=2019818]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 284ms |
| total: | 439ms |

| 0 / 0 |
