Dasturlash II 3-hafta mavzu: Ob’yektga yo‘naltirilgan fikrlash uslubi


Funksiyaga ob’yektlarni argument sifatida yuborish



Yüklə 2,27 Mb.
səhifə7/18
tarix11.11.2023
ölçüsü2,27 Mb.
#132197
1   2   3   4   5   6   7   8   9   10   ...   18
D2 maruza-3 Ob’ektga yo‘naltirilgan fikrlash. String sinfi, ob’yektlar massivi

    Bu səhifədəki naviqasiya:
  • include
3.3. Funksiyaga ob’yektlarni argument sifatida yuborish
Key Point. Funksiyagaob’yektlar qiymat orqali yoki havola orqali yuborilishi mumkin, lekin havola orqali yuborilish ko`proq samara beradi.
Shu vaqtgacha biz qanday qilib funksiyaga oddiy turni, massiv turni va satrli turni yuborishni o`rgandik. Bundan tashqari, funksiyaga ixtiyoriy ob’yekt turlarini ham yuborish mumkin. Ob’yektlarni qiymatlar orqali yoki havola orqali yuborishimiz mumkin. 3.3-kodli ro`yxatda ob’yektni qiymat orqali yuborishga misol keltirilgan.
3.2-kodli ro`yxat. ObyektniQiymatOrqaliYuborish.cpp
1 #include
2 // CircleWithPrivateDataFields.h 2.7-kodli ro`yxatda berilgan
3 #include "CircleWithPrivateDataFields.h"
4 using namespace std;
5
6 void printCircle(Circle c)
7 {
8 cout <" radiusli doira yuzasi: "
9 <10 }
11
12 int main()
13 {
14 CirclemyCircle(5.0);
15 printCircle(myCircle);
16
17 return0;
18 }

Natija:


5 radiusli doira yuzasi: 78.5397

2.7-kodli royxatda berilgan CircleWithPrivateDataFields.h da aniqlangan Circle sinfi 3-qatorda qo`shilgan. printCircle funksiyasi uchun parametr sifatida Circle aniqlangan (6-qator). Asosiy funksiya myCircle nomli Circle ob’yektini hosil qiladi (14-qator) va uni printCircle funksiyasiga qiymat orqali yuboradi (15-qator). Ob’yektni funksiyaga qiymat orqali yuborish – ob’yektni funksiya parametriga nusxalash demakdir. Shuning uchun, 3.9a-rasmda keltirilganidek, printCircle funksiyasidagi сob’yektimyCircle ob’yektidan mustaqil hisoblanadi.



3.9a-rasm. Ob’yektni funksiyaga qiymat yoki havola orqali yuborish mumkin.

3.4-kodli ro`yxatda ob’yektni funksiyaga havola orqali yuborishga misol keltirilgan.


3.4-kodli ro`yxat. ObyektniHavolaOrqaliYuborish.cpp
1 #include
2 #include "CircleWithPrivateDataFields.h"
3 using namespace std;
4
5 void printCircle(Circle& c)
6 {
7 cout <" radiusli doira yuzasi: "
8 <9 }
10
11 int main()
12 {
13 Circle myCircle(5.0);
14 printCircle(myCircle);
15
16 return 0;
17 }


Natija:

5 radiusli doira yuzasi: 78.5397

Havolali Circle parametr tipi printCircle funksiyasida e’lon qilinadi (5-qator). Asosiy funksiya myCircle nomli Circle ob’yekt hosil qiladi (13-qator) va havolani printCircle funksiyasidagi ob’yektga yuboradi (14-qator). Shuning uchun, 3.9a-rasmda keltirilganidek, printCircle funksiyasidagi сob’yekti myCircle ob’yektining ko`chma qiyofasi (alias i)ga aylanadi. Har holda biz ob’yektni qiymat orqali yoki havola orqali funksiyaga yuborishimiz mumkin, ammo havola orqali yuborish ancha samarali hisoblanadi. Chunki, qiymat orqali yuborish ko`p vaqtni va xotiradan qo`shimcha joyni talab qiladi.





Yüklə 2,27 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   ...   18




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin