Глава 6. Основы объектно-ориентированного программированияВ предыдущих примерах программы представляли собой набор функций и директив, идущих друг за другом в определенном порядке. Это структурный подход к программированию. Ему присущи некоторые недостатки, связанные с формализацией задач программирования. Такие задачи, как правило, связаны с манипулированием разнородных объектов. Например, создается графический редактор, где необходимо выполнить работу с графическими примитивами: линией, эллипсом и прямоугольником. При этом в соответствующих функциях программы возникает необходимость перебирать типы объектов, например, для их добавления, редактирования и отображения на экране. В результате получается громоздкий текст программы, в котором многократно описываются одни и те же действия. Теперь представим, что в рамках данной задачи общее число возможных графических элементов не три, а сто. В этом случае получится еще более сложная программа, в которой станет сложно ориентироваться. Кроме того, на практике часто наперед неизвестно общее число возможных вариантов (типов графических объектов) и исправление текста программы для добавления возможности работы с новым объектом становится трудоемкой задачей для программиста. Представленный пример создания графического редактора показывает лишь один из недостатков структурного программирования. В общем случае существует большое множество разнообразных задач плохо поддающихся описанию, вследствие чего и возникла необходимость разработки нового подхода к программированию, которым стало объектно-ориентированное программирование (ООП).
Видео по теме
С++ с нуля: урок 1 - переменные, оператор присваивания С++ с нуля: урок 2 - арифметические операции С++ с нуля: урок 3 - директивы препроцессора С++ с нуля, урок 4: условные операторы if и switch С++ с нуля: урок 5 - операторы циклов while, for и do while С++ с нуля: урок 6 - массивы, метод всплывающего пузырька С++ с нуля: урок 7 - строки и функции работы с ними С++ с нуля: урок 8 - функции: прототипы, перегрузка, рекурсия С++ с нуля: урок 9 - области видимости переменных С++ с нуля: урок 10 - битовые операции И, ИЛИ, НЕ, XOR С++ с нуля: урок 11 - структуры С++ с нуля: урок 12 - объединения, перечисления, typedef С++ с нуля: урок 13 - указатели и ссылки, выделение памяти С++ с нуля: урок 14 (часть 1) - функции работы с файлами С++ с нуля: урок 14 (часть 2) - функции работы с файлами С++ с нуля: урок 15 - стек, теория и практика С++ с нуля: урок 16 - связные списки, теория и практика С++ с нуля: урок 17 - бинарное дерево, теория и практика
|