Видео: Виртуал функц ба функцийг дарах хоёрын ялгаа нь юу вэ?
2024 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2023-12-15 23:50
Виртуал функцууд статик байж болохгүй, бас найз байж болохгүй функц өөр ангийн. Тэд үргэлж үндсэн ангид тодорхойлогддог ба дарагдсан үүсмэл ангилалд. Энэ нь үүсмэл ангид заавал байх албагүй хүчингүй болгох (эсвэл дахин тодорхойл виртуал функц ), энэ тохиолдолд үндсэн ангиллын хувилбар функц ашиглаж байна.
Цаашилбал, виртуал функц ба цэвэр виртуал функцийн хооронд ямар ялгаа байдаг вэ?
Үндсэн хоорондын ялгаа ' виртуал функц' болон 'цэвэр виртуал функц "Тэр үү" виртуал функц " гэсэн өөрийн гэсэн тодорхойлолттой дахь үндсэн анги, мөн удамшлын гаралтай ангиуд үүнийг дахин тодорхойлдог. The цэвэр виртуал функц тодорхойлолт байхгүй дахь үндсэн анги бөгөөд бүх удамшсан үүсмэл ангиуд үүнийг дахин тодорхойлох ёстой.
Дараа нь асуулт гарч ирнэ, C++ хэл дээр функцийг давах нь юу вэ? C++ функцийг хүчингүй болгох . Хэрэв үүсмэл анги нь ижил зүйлийг тодорхойлдог функц үндсэн ангидаа тодорхойлсноор үүнийг гэж нэрлэдэг функцийг давах C++ хэл дээр. Энэ нь ажиллах үеийн полиморфизмд хүрэхэд ашиглагддаг. Энэ нь тодорхой хэрэгжилтийг хангах боломжийг танд олгоно функц Үүнийг үндсэн анги нь аль хэдийн өгсөн.
Үүнтэй адил хүмүүс бид яагаад виртуал функцийг ашигладаг вэ гэж асуудаг.
Виртуал функцууд байна ашигласан "Ажиллах цагийн полиморфизм"-ийг дэмжих. Үед виртуал функц Үндсэн ангиллын заагч ашиглан дуудагдах үед хөрвүүлэгч нь Runtime дээр аль хувилбарыг нь шийддэг функц жишээлбэл, үндсэн ангийн хувилбар эсвэл дарагдсан дериватив ангиллын хувилбарыг дуудах ёстой. Үүнийг Run time polymorphism гэж нэрлэдэг.
Та C++ хэл дээрх виртуал бус функцийг дарж чадах уу?
c++ хэл дээр ангийн бүх гишүүн функцууд байна үгүй - виртуал Анхны утгаараа. Тэд чадна хийгдэх виртуал ашиглан виртуал дахь түлхүүр үг функц гарын үсэг. Дээр дурдсанчлан хэрэв нь функц үндсэн ангиллаар хийгдсэн виртуал дараа нь функц Үүсмэл эсвэл Хүүхдийн ангийн функц ижил нэртэй дарж болно үндсэн анги функц.
Зөвлөмж болгож буй:
C++ хэл дээрх виртуал функц ба цэвэр виртуал функц хоёрын ялгаа юу вэ?
"Виртуал функц" ба "цэвэр виртуал функц" хоёрын гол ялгаа нь "виртуал функц" нь үндсэн ангид өөрийн гэсэн тодорхойлолттой байдаг ба мөн удамшиж буй үүсмэл ангиуд үүнийг дахин тодорхойлдогт оршино. Цэвэр виртуал функц нь үндсэн ангид ямар ч тодорхойлолтгүй бөгөөд удамшлын гаралтай бүх ангиуд үүнийг дахин тодорхойлох ёстой
Би яаж Enter товчийг дарах вэ?
Мессежийн талбарт шинэ мөр эхлүүлэхийн тулд Enter дарна уу. Та бэлэн болсны дараа Илгээх товчийг дарна уу, эсвэл гэж бичнэ үү? Мессеж илгээхийн тулд Mac дээр оруулна уу эсвэл Windows дээр Ctrl Enter хийнэ үү
Аргыг дарах, нуух хоёрын ялгаа юу вэ?
Аргын дарж бичихэд үндсэн ангиллын лавлагаа хувьсагч нь үүсмэл ангийн объект руу чиглэх үед энэ нь үүсмэл ангид дарагдсан аргыг дуудах болно. Аргын нуугдмал хэсэгт үндсэн ангийн лавлагаа хувьсагч нь үүсмэл классын объект руу чиглэх үед үндсэн анги дахь далд аргыг дуудна
Та Python дээр функц доторх функцийг тодорхойлж чадах уу?
Python нь "үүрлэсэн функц" эсвэл "дотоод функц" гэсэн ойлголтыг дэмждэг бөгөөд энэ нь зүгээр л өөр функц дотор тодорхойлогдсон функц юм. Яагаад өөр функц дотор функц үүсгэхийг хүсэх янз бүрийн шалтгаан бий. Дотоод функц нь хавсаргасан хүрээн дэх хувьсагчдад хандах боломжтой
Та C++ функц доторх функцийг дуудаж чадах уу?
Хөрвүүлэгч дотоод функцийн санах ойн зөв байрлалд хүрч чадахгүй/олж чадахгүй тул лексик хамрах хүрээ нь Си хэл дээр хүчингүй. Бид C хэл дээрх өөр функц доторх функцийг тодорхойлж чадахгүй тул үүрлэсэн функцийг C дэмждэггүй. Бид функц дотор функцийг зарлаж болох боловч энэ нь үүрлэсэн функц биш юм