Виртуал функц ба функцийг дарах хоёрын ялгаа нь юу вэ?
Виртуал функц ба функцийг дарах хоёрын ялгаа нь юу вэ?

Видео: Виртуал функц ба функцийг дарах хоёрын ялгаа нь юу вэ?

Видео: Виртуал функц ба функцийг дарах хоёрын ялгаа нь юу вэ?
Видео: BTT SKR2 -Klipper Firmware Install 2024, Арваннэгдүгээр
Anonim

Виртуал функцууд статик байж болохгүй, бас найз байж болохгүй функц өөр ангийн. Тэд үргэлж үндсэн ангид тодорхойлогддог ба дарагдсан үүсмэл ангилалд. Энэ нь үүсмэл ангид заавал байх албагүй хүчингүй болгох (эсвэл дахин тодорхойл виртуал функц ), энэ тохиолдолд үндсэн ангиллын хувилбар функц ашиглаж байна.

Цаашилбал, виртуал функц ба цэвэр виртуал функцийн хооронд ямар ялгаа байдаг вэ?

Үндсэн хоорондын ялгаа ' виртуал функц' болон 'цэвэр виртуал функц "Тэр үү" виртуал функц " гэсэн өөрийн гэсэн тодорхойлолттой дахь үндсэн анги, мөн удамшлын гаралтай ангиуд үүнийг дахин тодорхойлдог. The цэвэр виртуал функц тодорхойлолт байхгүй дахь үндсэн анги бөгөөд бүх удамшсан үүсмэл ангиуд үүнийг дахин тодорхойлох ёстой.

Дараа нь асуулт гарч ирнэ, C++ хэл дээр функцийг давах нь юу вэ? C++ функцийг хүчингүй болгох . Хэрэв үүсмэл анги нь ижил зүйлийг тодорхойлдог функц үндсэн ангидаа тодорхойлсноор үүнийг гэж нэрлэдэг функцийг давах C++ хэл дээр. Энэ нь ажиллах үеийн полиморфизмд хүрэхэд ашиглагддаг. Энэ нь тодорхой хэрэгжилтийг хангах боломжийг танд олгоно функц Үүнийг үндсэн анги нь аль хэдийн өгсөн.

Үүнтэй адил хүмүүс бид яагаад виртуал функцийг ашигладаг вэ гэж асуудаг.

Виртуал функцууд байна ашигласан "Ажиллах цагийн полиморфизм"-ийг дэмжих. Үед виртуал функц Үндсэн ангиллын заагч ашиглан дуудагдах үед хөрвүүлэгч нь Runtime дээр аль хувилбарыг нь шийддэг функц жишээлбэл, үндсэн ангийн хувилбар эсвэл дарагдсан дериватив ангиллын хувилбарыг дуудах ёстой. Үүнийг Run time polymorphism гэж нэрлэдэг.

Та C++ хэл дээрх виртуал бус функцийг дарж чадах уу?

c++ хэл дээр ангийн бүх гишүүн функцууд байна үгүй - виртуал Анхны утгаараа. Тэд чадна хийгдэх виртуал ашиглан виртуал дахь түлхүүр үг функц гарын үсэг. Дээр дурдсанчлан хэрэв нь функц үндсэн ангиллаар хийгдсэн виртуал дараа нь функц Үүсмэл эсвэл Хүүхдийн ангийн функц ижил нэртэй дарж болно үндсэн анги функц.

Зөвлөмж болгож буй: