Texnik tizimlarda axborot texnologiyalari
Download 0.58 Mb.
|
AT mustaqil ish
- Bu sahifa navigatsiya:
- Полиморфизм Полиморфизм
Ворислик
Ворислик – бу шундай жараёнки, унда бир объект бошқасининг хоссаларини ўзлаштириши мумкин бўлади. Ворислик орқали мавжуд синфлар асосида ҳосилавий синфларни қуриш мумкин бўлади. Ҳосилавий синф (синф–авлод) ўзининг она синфидан (синф-аждод) берилганлар ва функцияларни ворислик бўйича олади, ҳамда улар қаторига фақат ўзига хос бўлган қирраларни амалга оширишган имкон берувчи берилган ва функцияларни қўшади. Аждод синфдаги ҳимояланган берилган-аъзоларга ва функция-аъзоларга аждод синфда мурожаат қилиш мумкин бўлади. Бундан ташқари, ҳосилавий синфда она синф функциялари қайта аниқланиши мумкин Демак, ворислик асосида бир-бири билан «она-бола» муносабатидаги синфлар шажарасини яратиш мумкин. Таянч синф термини синфлар шажарасидаги она синф синоними сифатида ишлатилади. Агар объект ўз атрибутларини (берилганлар-аъзолар ва функциялар–аъзолар) фақат битта она синфдан ворислик билан олса, якка (ёки оддий) ворислик дейилади. Агар объект ўз атрибутларини бир нечта она синфлардан олса, тўпламли ворислик дейилади. Полиморфизм
Полиморфизм яна бир таърифи қуйидагича: полиморфизм – бу таянч синфга кўрсаткичларнинг (мурожаатларнинг), уларни виртуал функцияларни чақиришдаги турли шакл (қийматларни) қабул қилиш имкониятидир. С++ тилининг бундай имконияти кечиктирилган боғланиш натижасидир. Кечиктирилган боғланишда чақириладиган функция-аъзолар адреслари дастур бажарилиши жараёнида динамик равишда аниқланади. Анъанавий дастурлаш тилларида эса бу адреслар статик бўлиб, улар компиляция пайтида аниқланади (олдиндан боғланиш). Кечиктирилган боғланиш фақат виртуал функциялар учун ўринли. Синфлар Синф тушунчаси С++ тилидаги энг муҳим тушунчалардан биридир. Синф синтаксиси структура синтаксисига ўхшашдир ва унинг кўриниши қуйидагича: class <синф номи> { // синфнинг ёпиқ берилганлар–аъзолари ва функциялар– // аъзолари public:
// синфнинг очиқ берилганлар–аъзолари ва функциялар– // аъзолари }
Синф объектлари Одатда синф тавсифида <объектлар рўйхати> қисми шарт эмас. Синф объектлари кейинчалик, зарурат бўйича эълон қилиниши мумкин. Гарчи <синф номи> қисми ҳам мажбурий бўлмаса ҳам, унинг бўлгани маъқул. Чунки <синф номи> берилганларнинг турининг янги номи бўлиб, унинг ёрдамида шу синф объектлари аниқланади. Синф ичида эълон қилинган функция ва берилганлар шу синф аъзолари ҳисобаланди. Синф эълонининг ичида эълон қилинган ўзгарувчилар берилганлар-аъзолар, синф ичида эълон қилинган функциялар функциялар–аъзолар дейилади. Келишув бўйича синф ичидаги барча функция ва ўзгарувчилар шу синф учун ёпиқ ҳисобланади, яъни уларни фақат шу синф аъзолари ишлатиши мумкин. Синфнинг очиқ аъзоларини эълон қилиш учун public калит сўзи ва «:» белгисидан фойдаланилади. Синф эълонидаги public сўзидан кейин эълон қилинган функциялар ва ўзгарувчиларга синфнинг бошқа аъзолари ва дастурнинг шу синф ишлатилган ихтиёрий жойидан мурожаат қилиш мумкин бўлади. Синф эълонига мисол: class Sinf_1 { // синфнинг ёпиқ элементи int a; public:
int get_a(); void set_a(int _num); Download 0.58 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling