C tilidagi ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq

Mundarija:

C tilidagi ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq
C tilidagi ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq

Video: C tilidagi ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq

Video: C tilidagi ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq
Video: maktab qizlari Axvoli😡 #UZmir va #Mira kel #UZmir va #Mira cha cha cha #UZmir unutib #UZmir 2024, Dekabr
Anonim

Asosiy farq - C-da ortiqcha yuklash va bekor qilish

C da bekor qilish va ortiqcha yuklash oʻrtasidagi asosiy farq shundaki, bekor qilingan usul chaqiruvining uning taʼrifiga ulanishi ish vaqtida, ortiqcha yuklangan usul chaqiruvining uning taʼrifiga bogʻlanishi esa kompilyatsiya vaqtida sodir boʻladi.

C - Microsoft tomonidan ishlab chiqilgan umumiy maqsadli dasturlash tili. C tilining asosiy afzalligi shundaki, u ob'ektga yo'n altirilgan dasturlashni (OOP) qo'llab-quvvatlaydi. OOP ning ustunlaridan biri polimorfizmdir. Bu ob'ektga bir nechta xatti-harakatlarga ega bo'lish imkonini beradi. Polimorfizmning ikki turi mavjud: ortiqcha yuklash va ortiqcha yuklash. Ushbu maqolada C da usulni bekor qilish va ortiqcha yuklash o'rtasidagi farq muhokama qilinadi.

C da Overriding nima?

OOPda yana bir muhim tushuncha bor - bu meros. Bu allaqachon mavjud sinfning atributlari va usullaridan foydalanishdir. Bu kodni qayta ishlatishni yaxshilaydi. Mavjud sinf asosiy sinf, yangi sinf esa olingan sinf sifatida tanilgan. Polimorfizmni bekor qilishda asosiy sinf va hosila sinf bo'lishi kerak. Bekor qilingan usul chaqiruvining ta'rifga ulanishi ish vaqtida sodir bo'ladi. Misol quyidagicha.

C da bekor qilish va ortiqcha yuklash o'rtasidagi farq
C da bekor qilish va ortiqcha yuklash o'rtasidagi farq

01-rasm: bekor qilish bilan C dasturi

Yuqoridagi dasturga koʻra Shape klassi asosiy sinf boʻlib, unda koʻrsatish usuli mavjud. Class Rectangle va Triangle hosila sinflaridir. Bu olingan sinflar ham oʻzlarining ilovalari bilan bir xil usul koʻrinishiga ega.

Avval obj mos yozuvlar oʻzgaruvchisi yaratiladi. Shakl obyektiga ishora qiladi. Shunday qilib, Shape sinfining ko'rsatish usuli bajariladi. Keyin, mos yozuvlar o'zgaruvchisi Rectangle ob'ektiga ishora qiladi. Shunday qilib, Rectangle sinfining ko'rsatish usuli bajariladi. Nihoyat, mos yozuvlar o'zgaruvchisi Triangle ob'ektiga ishora qiladi. Shunday qilib, Triangle sinfining ko'rsatish usuli bajariladi. Asosiy sinfni ko'rsatish usuli olingan sinflarni ko'rsatish usullari bilan bekor qilingan.

Ishga tushirish usuli ish vaqtida aniqlanadi. Shape sinfi "virtual" kalit so'zi bilan yozilgan. Rectangle va Triangle sinflari "override" kalit so'zi bilan yoziladi. Agar bu kalit so‘zlar ishlatilmasa, chiqish barcha uchun Shape sinfining ko‘rsatish usuli mazmunini chop etadi.

C da ortiqcha yuklanish nima?

Haddan tashqari yuklashda bir nechta usullar bir xil nomga ega, ammo parametrlari boshqacha. Parametrlar turli xil bo'lishi mumkin. Usullar turli xil parametrlarga ega bo'lishi mumkin. Usulning haddan tashqari yuklanishi xuddi shu sinfda sodir bo'ladi. Haddan tashqari yuklangan usullarni ta'rifga bog'lash kompilyatsiya vaqtida sodir bo'ladi. Quyidagi C dasturiga qarang.

C da bekor qilish va ortiqcha yuklash o'rtasidagi asosiy farq
C da bekor qilish va ortiqcha yuklash o'rtasidagi asosiy farq

02-rasm: Haddan tashqari yuklangan C dasturi

Yuqoridagi dasturga ko'ra, A sinfida bir xil nomdagi sum deb ataladigan ikkita usul mavjud. Ular har xil turdagi parametrlarga ega. Asosiy dasturda A ning ob'ekti yaratiladi. Yig'indi (2, 3) butun sonlar bilan sum usulini chaqiradi. Yig'indi (5.1, 7.94) qo'sh qiymatlar bilan sum usulini chaqiradi. Ikkala usul ham bir xil nomga va bir xil miqdordagi parametrlarga ega. Ammo parametr turlari boshqacha. Kerakli usul mos ravishda chaqiriladi. Usul nomlari va parametr turlari bir xil, lekin parametrlar soni boshqacha bo'lsa, ortiqcha yuklanish ham sodir bo'lishi mumkin.

C da ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi oʻxshashlik nimada?

C da Overriding va Overloading polimorfizmning bir turi

C da ortiqcha yuklash va ortiqcha yuklash oʻrtasidagi farq nima?

Oddiy belgilash va Cda haddan tashqari yuklash

C da bekor qilish - bu asosiy sinfda allaqachon mavjud bo'lgan usul uchun olingan sinf usulida ma'lum bir amalga oshirishni ta'minlashdir. C da haddan tashqari yuklash - bu turli xil ilovalar bilan bir xil nomdagi bir nechta usullarni yaratish.
Parametrlar
C Overriding-da usullar bir xil nomga, bir xil parametr turlariga va bir xil miqdordagi parametrlarga ega. C Haddan tashqari yuklashda usullar bir xil nomga ega, lekin parametrlar soni boshqacha yoki boshqa turdagi parametrlarga ega.
Voqea
C tilida bekor qilish asosiy sinf va olingan sinf ichida sodir boʻladi. C da haddan tashqari yuklanish bir xil sinfda sodir boʻladi.
Bogʻlanish vaqti
Oddiga qaytarilgan usul chaqiruvining uning ta'rifiga ulanishi ish vaqtida sodir bo'ladi. Haddan tashqari yuklangan usul chaqiruvining uning ta'rifiga ulanishi kompilyatsiya vaqtida sodir bo'ladi.
Sinonimlar
Oddini bekor qilish ish vaqti polimorfizmi, dinamik polimorfizm yoki kech ulanish deb ataladi. Haddan tashqari yuklanish kompilyatsiya vaqti polimorfizmi, statik polimorfizm yoki erta ulanish deb ataladi.

Xulosa – C da ortiqcha yuklash va bekor qilish

Oddiy belgilash va ortiqcha yuklash polimorfizmning ikki turidir. C da bekor qilish va ortiqcha yuklash oʻrtasidagi farq shundaki, bekor qilingan usul chaqiruvining uning taʼrifiga ulanishi ish vaqtida, ortiqcha yuklangan usul chaqiruvining esa uning taʼrifiga bogʻlanishi kompilyatsiya vaqtida sodir boʻladi.

Tavsiya: