Operator porównania przeciążenia C++ w

Operator Porownania Przeciazenia C W



Przeciążanie operatorów to kluczowa koncepcja w C++, która pozwala osiągnąć funkcjonalność wbudowanych operatorów podczas pracy z typami danych zdefiniowanymi przez użytkownika. Operatory porównania w C++ to te, które służą do porównywania ze sobą dwóch wartości, takich jak „==”, „!=”, „>”, „<”, „>=” i „<=”. W tym artykule opisano metody przeciążania wszystkich sześciu operatorów porównania w C++ w systemie Ubuntu 20.04.

Przykład nr 1: Przeciążenie operatora „==” w C++:

Aby przeciążyć operator „==” w C++, zaprojektowaliśmy następującą klasę C++:







Nazwa naszej klasy C++ to ProductPrice. W ramach tej klasy mamy element prywatny „cena”. Następnie mamy kilka funkcji członka publicznego. Pierwsza funkcja o nazwie „userInput” pobiera cenę produktu jako dane wejściowe użytkownika. Następnie mamy funkcję do przeciążania operatora „==” w C++. Do tej funkcji przekazaliśmy obiekt klasy ProductPrice. W ramach tej funkcji mamy instrukcję „if”, która zwróci „true”, jeśli ceny dwóch produktów są równe, w przeciwnym razie „false”.



Aby to przetestować, mamy funkcję sterownika pokazaną na poniższym obrazku:







W naszej funkcji „main()” najpierw stworzyliśmy dwa obiekty naszej klasy. Następnie wywołaliśmy funkcję „userInput” z każdym z dwóch obiektów jeden po drugim, aby pobrać ceny dwóch produktów jako dane wejściowe od użytkownika. Następnie mamy instrukcję „if”, aby wydrukować wiadomość, jeśli dwie ceny są równe, i kolejną wiadomość, jeśli nie.

Skompilowaliśmy ten program za pomocą następującego polecenia:



$ g++ ComparisonOperator.cpp –o ComparisonOperator

Następnie wykonaliśmy go za pomocą polecenia pokazanego poniżej:

$ . / Operator porównania

Po wykonaniu tego kodu zostaliśmy poproszeni o podanie ceny pierwszego produktu, jak pokazano na poniższym obrazku:

Następnie zostaliśmy poproszeni o podanie ceny drugiego produktu, jak pokazano na poniższym obrazku:

Ponieważ wprowadziliśmy te same ceny dla obu produktów, na poniższym wyjściu widzimy, że nasz operator „==” został pomyślnie przeciążony.

Teraz, aby przetestować to pod kątem instrukcji „else”, wprowadziliśmy dwie różne ceny produktów, jak pokazano na poniższym obrazku:

Przykład nr 2: Przeciążenie operatora „!=” w C++:

Aby przeciążyć operator „!=” w C++, zaprojektowaliśmy następującą klasę C++:

Ten program wygląda bardzo podobnie do naszego pierwszego przykładu. Jedyną różnicą jest to, że wszędzie zastąpiliśmy operator „==” operatorem „!=”.

Aby to przetestować, mamy funkcję sterownika pokazaną na poniższym obrazku:

Wywołaliśmy funkcję „userInput” w naszej funkcji „main()” z każdym z dwóch obiektów jeden po drugim, aby pobrać ceny dwóch produktów jako dane wejściowe od użytkownika. Następnie mamy instrukcję „if”, aby wydrukować wiadomość, jeśli dwie ceny nie są równe, i kolejną wiadomość, jeśli są.

Kiedy wykonaliśmy ten kod z dwiema różnymi cenami produktów, zorientowaliśmy się, że nasz operator nierówności został pomyślnie przeciążony, jak widać na poniższym obrazku:

Teraz, aby przetestować to pod kątem instrukcji „else”, wprowadziliśmy dwie podobne ceny produktów, jak pokazano na poniższym obrazku:

Przykład nr 3: Przeciążenie operatora „>” w C++:

Aby przeciążyć operator „>” w C++, zaprojektowaliśmy następującą klasę C++:

Ten program jest również podobny do naszych przykładów powyżej. Jedyną różnicą jest to, że wszędzie zastąpiliśmy operator „!=” operatorem „>”.

Aby to przetestować, mamy funkcję sterownika pokazaną na poniższym obrazku:

Wywołaliśmy funkcję „userInput” w naszej funkcji „main()” z każdym z dwóch obiektów jeden po drugim, aby pobrać ceny dwóch produktów jako dane wejściowe od użytkownika. Następnie mamy instrukcję „if”, aby wydrukować wiadomość, jeśli pierwsza cena jest wyższa od drugiej, a kolejną wiadomość, jeśli nie.

Kiedy wykonaliśmy ten kod z dwoma różnymi cenami produktów, zorientowaliśmy się, że nasz operator większy niż został pomyślnie przeciążony, jak widać na poniższym obrazku:

Teraz, aby przetestować to pod kątem instrukcji „else”, wprowadziliśmy dwie podobne ceny produktów, jak pokazano na poniższym obrazku:

Przykład nr 4: Przeciążenie operatora „<” w C++:

Aby przeciążyć operator „<” w C++, zaprojektowaliśmy następującą klasę C++:

Ten program jest również podobny do naszych przykładów powyżej. Jedyna różnica polega na tym, że wszędzie zastąpiliśmy operator „>” operatorem „<”.

Aby to przetestować, mamy funkcję sterownika pokazaną na poniższym obrazku:

Wywołaliśmy funkcję „userInput” w naszej funkcji „main()” z każdym z dwóch obiektów jeden po drugim, aby pobrać ceny dwóch produktów jako dane wejściowe od użytkownika. Następnie mamy instrukcję „if”, aby wydrukować wiadomość, jeśli pierwsza cena jest niższa od drugiej, a kolejną wiadomość, jeśli nie.

Kiedy wykonaliśmy ten kod z dwoma różnymi cenami produktów, zorientowaliśmy się, że nasz operator less than został pomyślnie przeciążony, jak widać na poniższym obrazku:

Teraz, aby przetestować to pod kątem instrukcji „else”, ponownie wprowadziliśmy dwie różne ceny produktów, ale tym razem cena pierwszego produktu jest wyższa niż cena drugiego, jak pokazano na poniższym obrazku:

Przykład nr 5: Przeciążenie operatora „>=” w C++:

Aby przeciążyć operator „>=” w C++, zaprojektowaliśmy następującą klasę C++:

Różni się to nieco od naszych przykładów powyżej. Tym razem przeciążając operatora, mamy dwa warunki w instrukcji „if” oddzielone znakiem „||” symbol. Oznacza to, że to stwierdzenie sprawdzi, czy cena produktu jest większa lub równa innej.

Aby to przetestować, mamy funkcję sterownika pokazaną na poniższym obrazku:

Wywołaliśmy funkcję „userInput” w naszej funkcji „main()” z każdym z dwóch obiektów jeden po drugim, aby pobrać ceny dwóch produktów jako dane wejściowe od użytkownika. Następnie mamy instrukcję „if”, aby wydrukować wiadomość, jeśli pierwsza cena jest większa lub równa drugiej, a jeśli nie, kolejna wiadomość.

Kiedy wykonaliśmy ten kod z dwoma różnymi cenami produktów, zorientowaliśmy się, że nasz operator większy lub równy został pomyślnie przeciążony, jak widać na poniższym obrazku:

Teraz, aby przetestować to pod kątem stwierdzenia „else”, wprowadziliśmy cenę pierwszego produktu niższą niż cena drugiego, jak pokazano na poniższym obrazku:

Przykład nr 6: Przeciążenie operatora „<=” w C++:

Postępując zgodnie z tą samą metodą, co w naszym piątym przykładzie, przeciążyliśmy również operator „<=”, a jego kod wygląda następująco:

Wyniki wykonania tego programu z różnymi wartościami pokazano na poniższych obrazach:

Wniosek:

W tym artykule bardzo dobrze wyjaśniono, w jaki sposób można przeciążyć sześć operatorów porównania w C++ w Ubuntu 20.04. Zaczęliśmy od krótkiego wprowadzenia do przeciążania operatorów, następnie przeciążono wszystkie sześć operatorów porównania w C++. Użyliśmy tej samej zdefiniowanej przez użytkownika klasy do zademonstrowania wszystkich tych metod. Po zapoznaniu się z tymi metodami będziesz mógł przeciążać te operatory porównania dla dowolnej innej klasy zdefiniowanej przez użytkownika.