Связывание во время выполнения C ++ - PullRequest
2 голосов
/ 13 мая 2010

Я читаю в своем учебнике о виртуальных функциях в C ++, и моя книга не раскрывает, что такое привязка во время выполнения. Он не дает мне никакой информации о том, зачем мне нужно связывание во время выполнения.

Может быть, хорошие люди из SO могут предоставить мне некоторые ссылки или информацию?

Спасибо:]

Ответы [ 3 ]

3 голосов
/ 13 мая 2010

Как насчет этого? ; D * * тысяча одна

http://www.google.ca/search?hl=en&source=hp&q=virtual+function+runtime+binding+c%2B%2B&aq=f&aqi=&aql=&oq=&gs_rfai=

На полном серьезе, хотя ... первая ссылка выглядит прилично.

Вот предварительный просмотр:

Самая важная причина, по которой будет использоваться виртуальная функция, заключается в том, чтобы иметь производную функцию в производном классе. Разница между не виртуальной функцией-членом и виртуальной функцией-членом заключается в том, что не виртуальные функции-члены разрешаются во время компиляции.

И с другого сайта :

В больших и сложных программах виртуальные функции позволяют программисту упростить процесс программирования. При правильном использовании базовый класс успешно определит интерфейс своих производных классов. Тем не менее, программа оставит реализацию этого интерфейса до производных классов. Следовательно, программист может использовать один интерфейс для нескольких реализаций. Эта возможность также позволяет создавать библиотеки классов, которые устанавливают стандартные интерфейсы, но позволяют программисту адаптировать эти интерфейсы к любым уникальным ситуациям реализации, которые могут возникнуть. Одной из самых популярных библиотек является библиотека Microsoft Foundation Classes (MFC), которая предоставляет интерфейсы, необходимые для программирования в среде Windows. Эта библиотека освобождает программиста от необходимости заново изобретать интерфейсы Windows, позволяя ему сосредоточиться на конкретной реализации этих интерфейсов.

1 голос
/ 13 мая 2010

Самая простая форма связывания во время выполнения - полиморфизм. В контексте C ++ полиморфизм достигается с помощью виртуальных функций. Основная цель этого - вызывать методы для экземпляров производных классов с помощью указателя или ссылки на базовый класс.

Виртуальные функции Google должны дать вам много хороших результатов о том, как и зачем это делать.

0 голосов
/ 13 мая 2010

Пожалуйста, прочитайте статьи дяди Бобса о твердых принципах объектно-ориентированного проектирования: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

Очевидно, что речь идет не о привязке во время выполнения, но они описывают тип проблем проектирования, которые вы пытаетесь решить и которые требуют использования привязки во время выполнения.

Я думаю, что статья по принципу открытого закрытого доступа лучше всего демонстрирует (опять же, статья не о привязке во время выполнения), когда вам нужно было бы сделать это: http://www.objectmentor.com/resources/articles/ocp.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...