42. Объектга йўналтирилган программалаш (ОЙП) – бу программалашга янги бир ёндашувдир. Ҳисоблаш техникасининг ривожланиши ва ечилаётган масалаларни тобора мураккаблашуви программалашнинг турли моделларини (парадигмаларини) юзага келишига сабаб бўлмоқда. Биринчи компиляторларда (масалан, FORTRAN тили) программалашнинг функция-лардан фойдаланишга асосланган процедура моделини қўллаб қувват-лаган. Бу модел ёрдамида программа тузувчи бир нечта минг қаторли программаларни ёзиши мумкин эди. Ривожланишнинг кейинги босқичида программаларнинг структурали модели пайдо бўлди ва ALGOL, Pascal ва С тиллар компиляторларида ўз аксини топди. Структурали программалаш-нинг моҳияти – программани ўзаро боғланган процедуралар (блоклар) ва улар қайта ишлайдиган берилганларнинг мажмуаси деб қарашдан иборат. Ушбу модел программа блоклари кенг қўллашга, GOTO операторидан имкон қадар кам фойдаланишга таянган ва унда программа тузувчи ўн минг қатордан ортиқ программаларни ярата олган. Яратилган программ-мани процедурали моделга нисбатан созлаш ва назорат қилиш осон кечган.
Мураккаб масалаларни ечиш учун программалашнинг янги услубига зарурат пайдо бўлдики, у ОЙП моделида амалга оширилди. ОЙП модели бир нечта таянч концепцияларга асосланади.
Берилганларни абстракциялаш – берилганларни янги турини яратиш имконияти бўлиб, бу турлар билан худди берилганларнинг таянч турлари билан ишлагандек ишлаш мумкин. Одатда янги турларни берилганларнинг абстракт тури дейилади, гарчи уларни соддароқ қилиб «фойдаланувчи томонидан аниқланган тур» деб аташ мумкин.
Инкапсуляция – бу берилганлар ва уларни қайта ишловчи кодни бирлаштириш механизмидир. Инкапсуляция берилганлар ва кодни ташқи таъсирдан сақлаш имконини беради.
Юқоридаги иккита концепцияни амалга ошириш учун С++ тилида синфлар ишлатилади. Синф термини билан объектлар тури аниқланади. Синфнинг ҳар бир вакили (нусхаси) объект деб номланади. Ҳар бир объект ўзининг алоҳида ҳолатига эга бўлади. Объект ҳолати унинг унинг берилганлар-аъзоларнинг айни пайтдаги қиймати билан аниқланади. Синф вазифаси унинг функция-аъзоларининг синф объектлари устида бажарадиган амаллар имконияти билан аниқланади.
Берилган синф объектини яратиш конструктор деб номланувчи махсус функция-аъзо томонидан, ўчириш эса деструктор деб номланувчи махсус функция–аъзо орқали амалга оширилади.
Синф ички берилганларини мурожаатни чеклаб қўйиши мумкин. Чеклов берилганларни очиқ (public), ёпиқ (private) ва ҳимояланган (protected) деб аниқлаш билан тайинланади.
Синф, шу турдаги объектнинг ташқи дунё билан ўзаро боғланиши учун қатъий мулоқат шартларини аниқлайди. Ёпиқ берилганларга ёки кодга фақат шу объект ичида мурожаат қилиш мумкин. Бошқа томондан, очиқ берилганларга ва кодларга, гарчи улар объект ичида аниқланган бўлса ҳам, программанинг ихтиёрий жойидан мурожаат қилиш мумкин ва улар объектни ташқи олам билан мулоқатни яратишга хизмат қилади. Яратилган объектларни, уларни функция–аъзоларига оддийгина мурожаат орқали амалга оширилувчи хабарлар (ёки сўровлар) ёрдамида бошқариш мумкин. Кейинчалик Windows хабарлари билан адаштирмаслик учун сўров термини ишлатилади.