Ворислик – бу шундай жараёнки, унда бир объект бошқасининг хоссаларини ўзлаштириши мумкин бўлади. Ворислик орқали мавжуд синфлар асосида ҳосилавий синфларни қуриш мумкин бўлади. Ҳосилавий синф (синф–авлод) ўзининг она синфидан (синф-аждод) берилганлар ва функцияларни ворислик бўйича олади, ҳамда улар қаторига фақат ўзига хос бўлган қирраларни амалга оширишган имкон берувчи берилган ва функцияларни қўшади. Аждод синфдаги ҳимояланган берилган-аъзоларга ва функция-аъзоларга аждод синфда мурожаат қилиш мумкин бўлади. Бундан ташқари, ҳосилавий синфда она синф функциялари қайта аниқланиши мумкин. Демак, ворислик асосида бир-бири билан «она-бола» муносабатидаги синфлар шажарасини яратиш мумкин. Таянч синф термини синфлар шажарасидаги она синф синоними сифатида ишлатилади. Агар объект ўз атрибутларини (берилганлар-аъзолар ва функциялар–аъзолар) фақат битта она синфдан ворислик билан олса, якка (ёки оддий) ворислик дейилади. Агар объект ўз атрибутларини бир нечта она синфлардан олса, тўпламли ворислик дейилади.
Полиморфизм – бу коднинг, бажарилиш пайтидан юзага келадиган ҳолатга боғлиқ равишда ўзини турлича амал қилиш хусусиятидир. Полиморфизм – бу фақат объектлар хусусияти бўлмасдан, балки функциялар-аъзолар хусусиятидир ва улар хусусан, битта номдаги функция-аъзони, ҳар хил турдаги аргументларга эга ва бажаридаган амали унга узатиладиган аргументлар турига боғлиқ бўлган функциялар учун (ўрнида) фойдаланиш имкониятида намоён бўлади. Бу ҳолатга функцияларни қайта юклаш дейилади. Полиморфизм амалларга ҳам қўлланиши мумкин, яъни амал мазмуни (натижаси) операнд (берилган) турига боғлиқ бўлади. Полиморфизмнинг бундай турига амалларни қайта юклаш дейилади.
Полиморфизм яна бир таърифи қуйидагича: полиморфизм – бу таянч синфга кўрсаткичларнинг (мурожаатларнинг), уларни виртуал функцияларни чақиришдаги турли шакл (қийматларни) қабул қилиш имкониятидир. С++ тилининг бундай имконияти кечиктирилган боғланиш натижасидир. Кечиктирилган боғланишда чақириладиган функция-аъзолар адреслари программа бажарилиши жараёнида динамик равишда аниқланади. Анъанавий программалаш тилларида эса бу адреслар статик бўлиб, улар компиляция пайтида аниқланади (олдиндан боғланиш). Кечиктирилган боғланиш фақат виртуал функциялар учун ўринли.
10. Parallel hisoblash jarayonlari va tizimlari (13-ma'ruza)
Do'stlaringiz bilan baham: |