Объектга йўналтирилган программалаш
Download 0.58 Mb.
|
С ОЙП
- Bu sahifa navigatsiya:
- include class Dust_sinf { int x,y; public: Dust_sinf(int n, int m){x=n; y=m;}
{
cout< cout< kursat_ob++; } delete [] kursat_ob; return 0; } Программа Koord синфининг объектларининг динамик массиви ҳосил қилинишида фойдаланувчи томонидан келишув бўйича аниқланган параметрсиз конструктор амал қилади ва программа ишлаши натижасида экранга 0 0 0 0 0 0 0 0 қийматлари чоп этилади. Дўст функциялар ва синф дўстлари С++ тили ОЙП асосий концепцияларидан бири – берилганларни инкапсуляциялаш концепциясини дўстлар ёрдамида бузиш имконини беради. С++ тилида синфнинг икки турдаги синф дўстларини эълон қилиш имконини беради: дўст функция ва дўст синф. Маълумки, синфнинг ёпиқ элементларига очиқ функциялар–аъзолар орқали мурожаат қилиш мумкин. Лекин С++ тили синфнинг ёпиқ элементларига бошқа йўл орқали – дўст функциялар орқали мурожаат қилишни қўллаб қувватлайди. Дўст функциялар синф аъзолари бўлмаган ҳолда шу синфнинг ёпиқ аъзоларига мурожаат қилиш имкониятига эга. Бирорта синфга дўст функцияни эълон қилиш учун шу синф аниқланишида олдига friend калит сўзи қўйилган функция прототипи ёзилади. Мисол учун: #include class Dust_sinf { int x,y; public: Dust_sinf(int n, int m){x=n; y=m;} // Дўст функция прототипи friend bool Karrali(Dust_sinf ob); }; bool Karrali(Dust_sinf ob) { if (!(ob.x % ob.y)) return true; else return false; } main() { Dust_sinf obekt(12,3); if (Karrali(obekt)) cout<<”Sonlar karrali\n”; else cout<<”Sonlar o’zaro karrali emas\n”; return 0; } Шуни қайд қилиш керакки, ўзи эълон қилинган синфнинг аъзоси ҳисобланмайди. Шу сабабли, дўст функция чақирилишида объект номини кўрсатиш ёки синф аъзоларига мурожаат амалларини (нуқта ёки йўналиш чизиғи) ишлатиш керак эмас. Дўст функциялар синфнинг ёпиқ аъзоларига фақат синф объекти орқали мурожаат қилади. Бу объект ўз навбатида дўст функция эълон қилинган бўлиши ёки унга аргумент сифатида берилиши мумкин. Дўст синф ворислик билан ўтмайди ва ўзи ҳам ҳосилавий синфлар учун амал қилмайди. Бошқа томондан, функция бир вақтнинг ўзида бир нечта синфга дўст бўлиши мумкин. Масалан: include Download 0.58 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling