C++ Overload Comparison Operator sa

C Overload Comparison Operator Sa



Ang overloading ng operator ay isang mahalagang konsepto sa C++ na hinahayaan kang makamit ang functionality ng mga built-in na operator habang nagtatrabaho sa mga uri ng data na tinukoy ng user. Ang mga operator ng paghahambing sa C++ ay ang mga naroroon upang ihambing ang dalawang halaga sa isa't isa tulad ng '==', '!=', '>', '<', '>=', at '<='. Ibabahagi ng artikulong ito ang mga paraan ng pag-overload sa lahat ng anim na operator ng paghahambing na ito sa C++ sa Ubuntu 20.04.

Halimbawa # 1: Overloading ang “==” Operator sa C++:

Para sa labis na pagkarga ng operator na “==” sa C++, idinisenyo namin ang sumusunod na klase ng C++:







Ang pangalan ng aming C++ class ay ProductPrice. Sa loob ng klase na ito, mayroon kaming pribadong miyembro na 'presyo'. Pagkatapos nito, mayroon kaming ilang pampublikong pag-andar ng miyembro. Ang unang function, na pinangalanang 'userInput,' ay kinukuha ang presyo ng produkto bilang input mula sa user. Pagkatapos, mayroon kaming function para sa labis na karga ng '==' operator sa C++. Naipasa namin ang isang object ng ProductPrice class sa function na ito. Sa loob ng function na ito, mayroon kaming 'if' na pahayag na magbabalik ng 'true' kung ang mga presyo ng dalawang produkto ay pantay, kung hindi ay 'false'.



Upang subukan ito, mayroon kaming function ng driver na ipinapakita sa larawan sa ibaba:







Sa aming 'pangunahing ()' function, una kaming lumikha ng dalawang bagay ng aming klase. Pagkatapos, tinawag namin ang function na 'userInput' sa bawat isa sa dalawang bagay nang paisa-isa upang kunin ang mga presyo ng dalawang produkto bilang input mula sa user. Pagkatapos nito, mayroon kaming 'kung' na pahayag upang mag-print ng isang mensahe kung ang dalawang presyo ay pantay at isa pang mensahe kung hindi.

Inipon namin ang program na ito gamit ang sumusunod na command:



$ g++ ComparisonOperator.cpp –o ComparisonOperator

Pagkatapos, isinagawa namin ito gamit ang command na ipinapakita sa ibaba:

$ . / ComparisonOperator

Sa pag-execute ng code na ito, hiniling sa amin na ipasok ang presyo ng unang produkto tulad ng ipinapakita sa sumusunod na larawan:

Pagkatapos, hiniling sa amin na ipasok ang presyo ng pangalawang produkto tulad ng ipinapakita sa larawan sa ibaba:

Dahil naglagay kami ng parehong mga presyo para sa parehong mga produkto, makikita namin sa sumusunod na output na matagumpay na na-overload ang aming operator na “==”.

Ngayon, upang subukan ito para sa 'iba' na pahayag, nagpasok kami ng dalawang magkaibang presyo ng produkto, tulad ng ipinapakita sa larawan sa ibaba:

Halimbawa # 2: Overloading ang '!=' Operator sa C++:

Para sa labis na pagkarga ng operator na '!=' sa C++, idinisenyo namin ang sumusunod na klase ng C++:

Kamukhang-kamukha ng program na ito ang aming unang halimbawa. Ang pagkakaiba lang ay pinalitan namin ang operator na “==” ng operator na “!=” kahit saan.

Upang subukan ito, mayroon kaming function ng driver na ipinapakita sa larawan sa ibaba:

Tinawag namin ang function na 'userInput' sa aming function na 'main()' sa bawat isa sa dalawang object nang isa-isa upang kunin ang mga presyo ng dalawang produkto bilang input mula sa user. Pagkatapos nito, mayroon kaming 'kung' na pahayag upang mag-print ng isang mensahe kung ang dalawang presyo ay hindi pantay at isa pang mensahe kung sila ay.

Noong isinagawa namin ang code na ito gamit ang dalawang magkaibang presyo ng produkto, nalaman namin na matagumpay na na-overload ang aming operator ng hindi pagkakapantay-pantay, gaya ng makikita mo sa sumusunod na larawan:

Ngayon, upang subukan ito para sa 'iba' na pahayag, nagpasok kami ng dalawang magkatulad na presyo ng produkto, tulad ng ipinapakita sa larawan sa ibaba:

Halimbawa # 3: Overloading ang '>' Operator sa C++:

Para sa labis na pagkarga ng operator na '>' sa C++, idinisenyo namin ang sumusunod na klase ng C++:

Ang program na ito ay katulad din sa aming mga halimbawa sa itaas. Ang pagkakaiba lang ay pinalitan namin ang operator na '!=' ng operator na '>' sa lahat ng dako.

Upang subukan ito, mayroon kaming function ng driver na ipinapakita sa larawan sa ibaba:

Tinawag namin ang function na 'userInput' sa aming function na 'main()' sa bawat isa sa dalawang object nang isa-isa upang kunin ang mga presyo ng dalawang produkto bilang input mula sa user. Pagkatapos nito, mayroon kaming 'kung' na pahayag upang mag-print ng isang mensahe kung ang unang presyo ay mas malaki kaysa sa isa at isa pang mensahe kung hindi.

Noong naisakatuparan namin ang code na ito sa dalawang magkaibang presyo ng produkto, nalaman namin na matagumpay na na-overload ang aming mas malaki kaysa sa operator, gaya ng makikita mo mula sa sumusunod na larawan:

Ngayon, upang subukan ito para sa 'iba' na pahayag, nagpasok kami ng dalawang magkatulad na presyo ng produkto, tulad ng ipinapakita sa larawan sa ibaba:

Halimbawa # 4: Overloading ang '<' Operator sa C++:

Para sa labis na pagkarga ng operator na '<' sa C++, idinisenyo namin ang sumusunod na klase ng C++:

Ang program na ito ay katulad din sa aming mga halimbawa sa itaas. Ang pagkakaiba lang ay pinalitan namin ang operator na '>' ng operator na '<' kahit saan.

Upang subukan ito, mayroon kaming function ng driver na ipinapakita sa larawan sa ibaba:

Tinawag namin ang function na 'userInput' sa aming function na 'main()' sa bawat isa sa dalawang object nang isa-isa upang kunin ang mga presyo ng dalawang produkto bilang input mula sa user. Pagkatapos nito, mayroon kaming 'kung' na pahayag upang mag-print ng isang mensahe kung ang unang presyo ay mas mababa kaysa sa isa at isa pang mensahe kung hindi.

Noong isinagawa namin ang code na ito gamit ang dalawang magkaibang presyo ng produkto, napag-alaman namin na ang aming mas mababa sa operator ay matagumpay na na-overload, gaya ng makikita mo mula sa sumusunod na larawan:

Ngayon, upang subukan ito para sa 'iba' na pahayag, muli kaming naglagay ng dalawang magkaibang presyo ng produkto, ngunit sa pagkakataong ito, ang presyo ng unang produkto ay mas malaki kaysa sa pangalawa, tulad ng ipinapakita sa larawan sa ibaba:

Halimbawa # 5: Overloading ang '>=' Operator sa C++:

Para sa labis na pagkarga ng '>=' operator sa C++, idinisenyo namin ang sumusunod na klase ng C++:

Ito ay bahagyang naiiba sa aming mga halimbawa sa itaas. Habang overloading ang operator sa oras na ito, mayroon kaming dalawang kundisyon sa loob ng 'if' na pahayag na pinaghihiwalay ng '||' simbolo. Ibig sabihin, susuriin ng pahayag na ito kung ang presyo ng isang produkto ay mas malaki o katumbas ng isa pa.

Upang subukan ito, mayroon kaming function ng driver na ipinapakita sa larawan sa ibaba:

Tinawag namin ang function na 'userInput' sa aming function na 'main()' sa bawat isa sa dalawang object nang isa-isa upang kunin ang mga presyo ng dalawang produkto bilang input mula sa user. Pagkatapos nito, mayroon kaming 'kung' na pahayag upang mag-print ng isang mensahe kung ang unang presyo ay mas malaki kaysa o katumbas ng isa at isa pang mensahe kung hindi.

Noong naisakatuparan namin ang code na ito sa dalawang magkaibang presyo ng produkto, napag-alaman namin na ang aming mas malaki sa o katumbas ng operator ay matagumpay na na-overload, gaya ng makikita mo mula sa sumusunod na larawan:

Ngayon, upang subukan ito para sa 'iba' na pahayag, ipinasok namin ang unang presyo ng produkto na mas mababa kaysa sa pangalawa, tulad ng ipinapakita sa larawan sa ibaba:

Halimbawa # 6: Overloading ang “<=” Operator sa C++:

Kasunod ng parehong paraan tulad ng aming ikalimang halimbawa, na-overload din namin ang operator na '<=', at ang code nito ay ang mga sumusunod:

Ang mga resulta ng pagpapatupad ng program na ito na may iba't ibang mga halaga ay ipinapakita sa mga larawan sa ibaba:

Konklusyon:

Ipinaliwanag ng artikulong ito nang mahusay kung paano mo ma-overload ang anim na operator ng paghahambing sa C++ sa Ubuntu 20.04. Nagsimula kami sa isang maikling pagpapakilala ng overloading ng operator, pagkatapos ay na-overload ang lahat ng anim na operator ng paghahambing sa C++. Gumamit kami ng parehong klase na tinukoy ng gumagamit para sa pagpapakita ng lahat ng mga pamamaraang ito. Sa sandaling dumaan ka sa mga pamamaraang ito, magagawa mong mag-overload ang mga operator ng paghahambing na ito para sa anumang iba pang klase na tinukoy ng gumagamit.