С хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа

Агуулгын хүснэгт:

С хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа
С хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа

Видео: С хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа

Видео: С хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа
Видео: Culture shock in Korea Солонгос Монголын соёлын ялгаа Top 10 Nomio tv Mongolian youtuber 2024, Долдугаар сарын
Anonim

Гол ялгаа – C хэл дээрх хэт ачаалал ба хэт ачааллыг хүчингүй болгох

С хэл дээр дарж бичих болон хэт ачаалах хоёрын гол ялгаа нь дарагдсан аргын дуудлагыг тодорхойлолтод нь холбох нь ажиллах үед, харин хэт ачаалагдсан аргын дуудлагыг түүний тодорхойлолттой холбох нь хөрвүүлэх үед болдогт оршино.

C нь Майкрософт компанийн боловсруулсан ерөнхий зориулалттай програмчлалын хэл юм. C хэлний гол давуу тал нь Объект хандалтат програмчлалыг (OOP) дэмждэг. OOP-ийн нэг тулгуур нь полиморфизм юм. Энэ нь объектыг олон үйлдэлтэй болгох боломжийг олгодог. Полиморфизмд хэт ачаалал ба хэт ачаалал гэж нэрлэгддэг хоёр төрөл байдаг. Энэ нийтлэлд C хэл дээрх аргыг хэтрүүлэх болон хэт ачаалах хоёрын ялгааг авч үзэх болно.

C хэл дээр Overriding гэж юу вэ?

OOP-д бас нэг чухал ойлголт байдаг бол өв залгамжлал. Энэ нь аль хэдийн байгаа ангийн шинж чанар, аргуудыг ашиглах явдал юм. Энэ нь кодын дахин ашиглах чадварыг сайжруулдаг. Аль хэдийн байгаа анги нь үндсэн анги бөгөөд шинэ анги нь үүсмэл анги гэж нэрлэгддэг. Полиморфизмыг давахдаа үндсэн анги ба үүсмэл анги байх ёстой. Дарагдсан аргын дуудлагыг тодорхойлолтод холбох нь ажиллах үед тохиолддог. Жишээ нь дараах байдалтай байна.

C хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа
C хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа

Зураг 01: Хүчингүй болгох програмтай C програм

Дээрх программын дагуу Shape анги нь үндсэн анги бөгөөд харуулах аргыг агуулдаг. Class Rectangle болон Triangle нь үүссэн ангиуд юм. Эдгээр үүсмэл ангиуд нь мөн өөрийн хэрэгжүүлэлттэй ижил аргын дэлгэцтэй байна.

Эхлээд obj лавлах хувьсагчийг үүсгэнэ. Энэ нь Shape объект руу чиглэнэ. Тиймээс Shape ангийн дэлгэцийн арга ажиллах болно. Дараа нь лавлагааны хувьсагч нь Rectangle объект руу чиглэнэ. Тэгэхээр Rectangle ангийн дэлгэцийн арга ажиллана. Эцэст нь лавлах хувьсагч нь Гурвалжин объект руу чиглэнэ. Тэгэхээр Triangle ангийн дэлгэцийн арга ажиллана. Үндсэн ангиудыг харуулах аргыг үүсмэл ангиудын харуулах аргуудаар дарсан байна.

Ажиллуулах аргыг ажиллах үед шийддэг. Shape анги нь "виртуал" түлхүүр үгээр бичигдсэн. Rectangle болон Triangle ангиудыг 'override' түлхүүр үгээр бичдэг. Хэрэв эдгээр түлхүүр үгсийг ашиглаагүй бол гаралт нь Shape ангиллын харуулах аргын агуулгыг бүгдийг нь хэвлэнэ.

C дээр хэт ачаалал гэж юу вэ?

Хэт ачаалалтай үед олон аргууд ижил нэртэй боловч өөр өөр параметртэй байдаг. Параметрүүд нь янз бүрийн хэлбэртэй байж болно. Мөн аргууд нь өөр өөр тооны параметртэй байж болно. Аргын хэт ачаалал нь нэг ангид тохиолддог. Хэт ачаалалтай аргуудыг тодорхойлолтод холбох нь эмхэтгэх үед тохиолддог. Доорх C програмыг үзнэ үү.

C хэл дээр дарж бичих, хэт ачаалах хоёрын гол ялгаа
C хэл дээр дарж бичих, хэт ачаалах хоёрын гол ялгаа

Зураг 02: Хэт ачаалалтай C програм

Дээрх программын дагуу А ангид нийлбэр нэртэй ижил нэртэй 2 арга байдаг. Тэд өөр өөр төрлийн параметртэй байдаг. Үндсэн программ дээр А объектыг үүсгэсэн. Нийлбэр (2, 3) нь бүхэл тоо бүхий нийлбэрийн аргыг дуудна. Нийлбэр (5.1, 7.94) нь давхар утгатай нийлбэрийн аргыг дуудна. Хоёр арга нь ижил нэртэй, ижил тооны параметртэй байдаг. Гэхдээ параметрийн төрлүүд өөр өөр байдаг. Үүний дагуу шаардлагатай аргыг дууддаг. Аргын нэр болон параметрийн төрлүүд ижил боловч параметрийн тоо өөр байвал хэт ачаалал үүсч болно.

C хэл дээр дарж бичих, хэт ачаалах хоёрын ижил төстэй зүйл юу вэ?

С хэл дээрх Overriding болон Overload нь хоёулаа полиморфизмын төрөл юм

C хэл дээр дарж бичих, хэт ачаалах хоёрын ялгаа юу вэ?

C-д хэт ачаалах ба хэт ачаалах

С хэл дээр хүчингүй болгох нь үндсэн ангид аль хэдийн байгаа аргын үүсмэл ангийн аргад тодорхой хэрэгжилтийг хангах явдал юм. С хэл дээр хэт ачаалал гэдэг нь өөр өөр хэрэгжүүлэлттэй ижил нэртэй олон аргыг үүсгэх явдал юм.
Параметрүүд
C Overriding-д аргууд нь ижил нэртэй, ижил параметрийн төрөл, ижил тооны параметртэй байна. C Overloading-д аргууд нь ижил нэртэй боловч өөр тооны параметр эсвэл өөр төрлийн параметртэй байна.
Тохиолдол
С хэл дээр үндсэн анги болон үүсмэл анги дотор давж заалддаг. С хэл дээр нэг ангид хэт ачаалал үүсдэг.
Холбох хугацаа
Дараагдсан аргын дуудлагыг түүний тодорхойлолттой холбох нь ажиллах үед тохиолддог. Хэт ачаалалтай аргын дуудлагыг түүний тодорхойлолттой холбох нь эмхэтгэх үед тохиолддог.
Ижил нэр
Дараах нь ажиллах үеийн полиморфизм, динамик полиморфизм эсвэл хожуу холболт гэж нэрлэгддэг. Хэт ачааллыг эмхэтгэх хугацааны полиморфизм, статик полиморфизм эсвэл эрт холбох гэж нэрлэдэг.

Хураангуй – C хэл дээрх хэт ачааллыг дарах ба хэт ачаалах

Дараах болон хэт ачаалах нь хоёр төрлийн полиморфизм юм. C хэл дээрх дарж бичих болон хэт ачаалах хоёрын ялгаа нь дарагдсан аргын дуудлагыг тодорхойлолттой нь холбох нь ажиллах үед, харин хэт ачаалагдсан аргын дуудлагыг түүний тодорхойлолттой холбох нь хөрвүүлэх үед болдогт оршино.

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