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.