Отправляет email-рассылки с помощью сервиса Sendsay

Как я стал программистом

  Все выпуски  

Как я стал программистом


Приветствую Вас на страницах моей рассылки!

Рассылка посвящена программированию на языке C++!

В начале этого года (а именно 4 января 2010 года) я записался на платные курсы обучению программированию на языке C++.

Подробнее обо мне здесь.

А сейчас Урок 4 (на данном этапе именно об языке С++ будет идти речь в этой рассылке и на моем сайте).

Объектно-ориентированное программирование.

Основные положения

Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.

В основе объектно-ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой:

«объект = данные + процедуры»

Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами. Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса.

Программирование заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними.

Инкапсуляция

Инкапсуляция  - объединение данных и процедур в одном объекте, позволяет  скрывать данные и методы объекта (концепция "черного ящика").

Использование инкапсуляции дает возможность модифицировать внутреннюю реализацию объекта без какого-либо влияния на программу в целом до тех пор, пока не будет затронут интерфейс с объектом (доступные методы и переменные).

Инкапсуляция обеспечивается модификаторами доступа public, protected и private, а также использованием дружественных методов и классов.

Наследование

При создании новых объектов свойства объектов могут добавляться или заимствоваться от объектов-предков (наследование). Процесс, посредством которого один объект может приобретать свойства другого называется наследованием. Наследование позволяет создать иерархию классов.

Наследование может быть единичным и множественным.

При единичном наследовании производный класс может иметь только один непосредственный базовый класс. Таким образом создается цепочка, так построена библиотека классов MFC.

При множественном наследовании производный класс может иметь несколько непосредственных базовых классов.

Полиморфизм

В процессе работы с объектами допускается полиморфизм — возможность использования методов с одинаковыми именами для обработки данных разных типов.

Полиморфизмом называется способность различных объектов по-разному обрабатывать одинаковые сообщения. Основной смысл этого – придание гибкости программе: "один интерфейс, множество методов".

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

Механизм раннего связывания осуществляется в виде перегрузки функций. При этом идентификаторы функций ассоциируются с физическими  адресами ещё до выполнения, поскольку компилятор по разнице в аргументах может точно определить, какую функцию вызывать. В Си используется только этот механизм.

Механизм позднего связывания осуществлен в виртуальных функциях (только в С++), имеющих полностью одинаковый прототип. При этом выбор, какая функция будет вызвана, определяется во время исполнения программы (на этапе компиляции строится таблица виртуальных методов, а конкретный адрес проставляется уже на этапе выполнения).

читать полностью...

 


В избранное