Програмен език C++
(съдържание)
Част 1: Увод.
Обектното програмиране като алтернатива на структурното програмиране.

В тази поредица ще се запознаем с програмния език C++, който е езикът на професионалното програмиране. За разлика от процедурните езици за програмиране като Pascal, C, BASIC и Fortran, C++ използва концепцията на обектното програмиране.

При процедурните езици програмата е поредица (списък, list) от инструкции, които се изпълняват последователно в определен ред, който зависи от решенията на редица конструкции от оператори за управление (if-then-else, while, do-until). При по-сложните програми кодът, който се повтаря, се групира в така наречените функции (при някои езици те са наречени процедури или подпрограми). Всяка функция (процедура) има определена цел и е с ясно дефиниран интерфейс (т.е. тип на обмяна на данни с основната програма). Идеята за групиране на редовете на програмата във функции се обобщава когато групи функции, извършващи подобни операции, се групират в модули (module, unit - това е отделен файл). Разделянето на програмата на функции (процедури, подпрограми) и модули (юнити) е в основата на така нареченото структурно програмиране.

Въпреки това структуриране, в една сложна програма се появяват проблеми, които са свързани с нейната промяна (осъвременяване, update) - например въвеждането на нова глобална променлива, която се "подава" на една функция, може да предизвика промяната на интерфейса на други функции. Програмите се използват за обработка на данни - точно това правят и програмите, написани на процедурните езици, но при тях данните са второстепенни по структура и замисъл: на практика програмата се структурира чрез споменатите по-горе функции и модули. Много често данните, които са цел на обработката от програмата, се дефинират като глобални променливи - т.е. такива променливи, които са достижими и могат да се променят във всяка една точка на програмата (във всяка една функция). Ето защо при промяна на даже и една функция от един новоназначен програмист (или създателят на програмата, но откъснал се за известно време от проекта) е много вероятно да бъдат нежелателно и погрешно променени други функции.

От друга страна, при обектно ориентираните езици данните са в основата на замисъла на програмата: концептуалната структура на програмата се върти около вида и начина на представяне на данните и какви точно операции се извършват върху тях. Тази свързаност на данните с операциите, извършвани върху тях, решава два основни проблема: (1) операциите, които са дефинирани за дадени данни, не могат да повлияят на други данни и е лесна промяната им в бъдеще, и (2) тази структура от данни и операции, върху тях, по-реално моделира обектите от реалността (извън програмата), които са обект на програмирането. Например, една състезателна кола в програма за игри може да се опише като набор от следните данни - скорост, местоположение, количество гориво, процент на повредите - и като набор от следните операции върху тези данни - увеличаване или намаляване на скоростта, осъвременяване на новото местоположение на колата, осъвременяване на количеството гориво, зареждане на гориво, поправка на повредите и т.н. Ясно е, че тези операции се извършват с една дадена кола (която ще бъде обект в програмата, а не само обект в нашите представи и модели за нея).

С този материал се започва една поредица от лекции по практическо програмиране на C++, в която ще бъдат обяснени основните понятия на обектното програмиране, които ще бъдат илюстрирани с кратки програми.

(следва продължение)

(съдържание)

Автор: Проф. Процесор Аритметиков

[ това е материал от брой 9 на списание "Коснос" www.kosnos.com]