Ц++ Оператор за поређење преоптерећења у

C Operator Za Poredene Preopterecena U



Преоптерећење оператора је кључни концепт у Ц++-у који вам омогућава да постигнете функционалност уграђених оператора док радите са кориснички дефинисаним типовима података. Оператори поређења у Ц++ су они који су ту да упореде две вредности једна са другом, као што су „==“, „!=“, „>“, „<“, „>=“ и „<=“. Овај чланак ће поделити методе преоптерећења свих шест ових оператора поређења у Ц++ у Убунту 20.04.

Пример бр. 1: Преоптерећење „==“ оператора у Ц++:

За преоптерећење „==“ оператора у Ц++, дизајнирали смо следећу Ц++ класу:







Назив наше Ц++ класе је ПродуцтПрице. У оквиру ове класе имамо приватног члана „прице“. Након тога, имамо неке јавне функције члана. Прва функција, названа „усерИнпут“, узима цену производа као унос од корисника. Затим имамо функцију за преоптерећење оператора “==” у Ц++. Проследили смо објекат класе ПродуцтПрице овој функцији. У оквиру ове функције имамо наредбу „ако“ која ће вратити „тачно“ ако су цене два производа једнаке, у супротном „нетачно“.



Да бисмо ово тестирали, имамо функцију драјвера приказану на слици испод:







У нашој функцији „маин()“, прво смо креирали два објекта наше класе. Затим смо позвали функцију „усерИнпут“ са сваким од два објекта један по један да бисмо преузели цене два производа као унос од корисника. Након тога, имамо наредбу „ако“ за штампање поруке ако су две цене једнаке и другу поруку ако нису.

Овај програм смо саставили користећи следећу команду:



$ г++ ЦомпарисонОператор.цпп –о ЦомпарисонОператор

Затим смо га извршили користећи команду приказану испод:

$ . / ЦомпарисонОператор

Након извршавања овог кода, од нас је затражено да унесемо цену првог производа као што је приказано на следећој слици:

Затим смо замољени да унесемо цену другог производа као што је приказано на слици испод:

Пошто смо унели исте цене за оба производа, можемо видети у следећем излазу да је наш оператор „==“ успешно преоптерећен.

Сада, да бисмо га тестирали за изјаву „друго“, унели смо две различите цене производа, као што је приказано на слици испод:

Пример бр. 2: Преоптерећење „!=“ оператора у Ц++:

За преоптерећење оператора “!=” у Ц++, дизајнирали смо следећу Ц++ класу:

Овај програм веома личи на наш први пример. Једина разлика је у томе што смо свуда заменили оператор “==” оператором “!=”.

Да бисмо ово тестирали, имамо функцију драјвера приказану на слици испод:

Позвали смо функцију „усерИнпут“ у нашој функцији „маин()“ са сваким од два објекта један по један да бисмо преузели цене два производа као унос од корисника. Након тога, имамо наредбу „ако“ за штампање поруке ако две цене нису једнаке и другу поруку ако јесу.

Када смо извршили овај код са две различите цене производа, схватили смо да је наш оператор неједнакости успешно преоптерећен, као што можете видети на следећој слици:

Сада, да бисмо га тестирали за изјаву „друго“, унели смо две сличне цене производа, као што је приказано на слици испод:

Пример бр. 3: Преоптерећење „>” оператора у Ц++:

За преоптерећење „>“ оператора у Ц++, дизајнирали смо следећу Ц++ класу:

Овај програм је такође сличан нашим примерима изнад. Једина разлика је у томе што смо свуда заменили оператор “!=” оператором “>”.

Да бисмо ово тестирали, имамо функцију драјвера приказану на слици испод:

Позвали смо функцију „усерИнпут“ у нашој функцији „маин()“ са сваким од два објекта један по један да бисмо преузели цене два производа као унос од корисника. Након тога, имамо наредбу „ако“ за штампање поруке ако је прва цена већа од друге и другу поруку ако није.

Када смо извршили овај код са две различите цене производа, схватили смо да је наш оператор већи од успешно преоптерећен, као што можете да видите на следећој слици:

Сада, да бисмо га тестирали за изјаву „друго“, унели смо две сличне цене производа, као што је приказано на слици испод:

Пример бр. 4: Преоптерећење „<“ оператора у Ц++:

За преоптерећење „<“ оператора у Ц++, дизајнирали смо следећу Ц++ класу:

Овај програм је такође сличан нашим примерима изнад. Једина разлика је у томе што смо свуда заменили оператор “>” оператором “<”.

Да бисмо ово тестирали, имамо функцију драјвера приказану на слици испод:

Позвали смо функцију „усерИнпут“ у нашој функцији „маин()“ са сваким од два објекта један по један да бисмо преузели цене два производа као унос од корисника. Након тога имамо наредбу „ако“ за штампање поруке ако је прва цена мања од друге и другу поруку ако није.

Када смо извршили овај код са две различите цене производа, схватили смо да је наш оператор лесс тхан успешно преоптерећен, као што можете видети на следећој слици:

Сада, да бисмо га тестирали за изјаву „друго“, поново смо унели две различите цене производа, али овај пут је цена првог производа већа од цене другог, као што је приказано на слици испод:

Пример бр. 5: Преоптерећење „>=“ оператора у Ц++:

За преоптерећење „>=“ оператора у Ц++, дизајнирали смо следећу Ц++ класу:

Ово се мало разликује од наших примера изнад. Док овај пут преоптерећујемо оператор, имамо два услова у наредби „иф“ одвојена знаком „||“ симбол. То значи да ће ова изјава проверити да ли је цена неког производа већа или једнака другој.

Да бисмо ово тестирали, имамо функцију драјвера приказану на слици испод:

Позвали смо функцију „усерИнпут“ у нашој функцији „маин()“ са сваким од два објекта један по један да бисмо преузели цене два производа као унос од корисника. Након тога, имамо наредбу „ако“ за штампање поруке ако је прва цена већа или једнака другој и друга порука ако није.

Када смо извршили овај код са две различите цене производа, схватили смо да је наш оператор већи или једнак успешно преоптерећен, као што можете видети на следећој слици:

Сада, да бисмо га тестирали за изјаву „друго“, унели смо прву цену производа мању од друге, као што је приказано на слици испод:

Пример бр. 6: Преоптерећење „<=” оператора у Ц++:

Пратећи исти метод као и наш пети пример, такође смо преоптеретили оператор „<=“, а његов код је следећи:

Резултати извршавања овог програма са различитим вредностима приказани су на сликама испод:

Закључак:

Овај чланак је веома добро објаснио како можете преоптеретити шест оператора поређења у Ц++ у Убунту 20.04. Почели смо са кратким уводом о преоптерећењу оператора, а затим је свих шест оператора поређења у Ц++ било преоптерећено. Користили смо исту кориснички дефинисану класу за демонстрацију свих ових метода. Када прођете кроз ове методе, моћи ћете да преоптеретите ове операторе поређења за било коју другу класу коју дефинише корисник.