Operator porównania przeciążenia C ++

Operator porównania przeciążenia C ++
Przeciążenie to koncepcja, która pozwala programistowi określić więcej niż jedną metodę różnych funkcji. Jest to nie tylko związane z metodami; Możemy również przeładować liczbę operatorów, takich jak operatorzy porównawcze. Operatorzy to symbole, które wykonują operacje na operantach (wartości). Porównanie ma na celu porównanie dwóch wartości ze sobą za pomocą stwierdzeń decyzyjnych. Przeciążenie operatora porównawczego oznacza definiowanie więcej niż jednego stwierdzenia decyzyjnego porównawczego. Przeprowadzamy porównanie przeciążenia na zajęciach, gdy zatrudniona jest klasa i ustawiamy warunek w klasie. Poza klasą ustawiamy również ten sam warunek dla obiektów. To przeładowuje operator. W przeciwnym razie kompilator nie byłby w stanie poradzić sobie z tymi warunkami.

Składnia metody:
Return_type Operator operator_symbol ()

Metoda przeciążonego operatora jest zdefiniowana nieco inaczej. Jest to metoda zwrotna, która zawiera słowo operator z operatorem_symbol, który chcemy przeciążyć.

Przeładuj operator porównawczy

Istnieje sześciu operatorów przydziałów, a wszystkie sześć można przeciążyć. Są one nazywane operatorami porównawczymi, ponieważ porównują dwie wartości lub zmienne (które przechowują wartości). Gdy warunek jest spełniony, wykonana jest następna operacja. Bardzo przydatne jest przeciążenie operatorów, gdy musimy porównać wartości ze sobą na podstawie różnych warunków. Sześciu operatorów porównawczych z funkcjami wyjaśniono w następującej dyskusji.

1. < - Mniej niż operator porównuje następujący warunek: jeśli pierwsza liczba całkowita jest mniejsza niż druga, wykonaj ciało.

2. > - Większy niż operator porównuje następujący warunek: jeśli pierwsza liczba całkowita jest większa niż druga, wykonaj ciało.

3. <= - Mniejsze lub równe operatorowi porównuje następujący warunek: jeśli pierwszy termin jest mniejszy lub równy drugiej, wykonaj ciało.

4. > = - Większe lub równe operatorowi porównuje następujący warunek: jeśli pierwszy termin jest większy lub równy drugiego, wykonaj ciało.

5. == - Podwójne równe sprawdzanie, czy dwie liczby całkowitowe są równe, czy nie. Jeśli tak, wykonaj ciało. W przeciwnym razie przejdź do następnego stwierdzenia.

6. != - Nie równy operator ocenia, czy dwa terminy nie są równe. Jeśli tak, wykonaj ciało. W przeciwnym razie warunek zmienia się fałszywie, a następna instrukcja jest wykonywana.

Porównujemy wszystkie wartości za pomocą wszystkich sześciu operatorów porównawczych w parach: =, == i !=.

Przeładuj < and <= Comparison Operators

Porównajmy dwie wartości za pomocą „<” and “<=” operators. Then, overload these operators.

Kod:

#włączać
za pomocą przestrzeni nazw Std;
klasa mniej

prywatny:
liczba int;
publiczność:
void input_0 ()
Cin >> Numer;
operator int < (Less x)

if (liczbazwrot 1;
w przeciwnym razie
powrót 0;

operator int <= (Less x)

if (liczba<=x.number)
zwrot 1;
w przeciwnym razie
powrót 0;

;
int main ()

Mniej N1, N2;
Cout<<"Please enter 1st number. ";
n1. input_0 ();
Cout<<"Please enter 2nd number. ";
n2. input_0 ();
if (n1cout<<"n1 is less than n2. ";
inaczej, jeśli (n1<=n2)
cout<<"n1 is less than or equal to n2. ";
w przeciwnym razie
cout<<"n1 is not less than or equal to n2. ";
powrót 0;

W tym kodzie włącz bibliotekę i przestrzeń nazw. Zdefiniuj klasę „mniej”, ponieważ w tym przykładzie przeciążamy < (less than) and >„Aby użytkownik mógł wstawić liczbę. Teraz przeładuj mniej niż (<) operator by defining the integer return type function as int operator <(). Within this function, specify an argument of the “Less” class. Next, apply the “if” condition. If the inserted number is less than “x.number”, return 1. Otherwise, return zero.

Przeładować mniej niż lub równe (<=) operator by implementing the same steps that we used to overload the (<) operator. Apply the main() function. Inside this, create two objects - “n1” and “n2” - of the “Less” class. Furthermore, use “cout<<” to print a message and call the input_0() method to get the values. Again, execute the “cout<<” and call the same method for object “n2”. Now, compare the first and second numbers. If n1 < n2, execute the body of “if”. And if n1<= n2, execute the body of the “else if”. Otherwise, execute the “else”. This way, we overload the operators.

Wyjście:

Wprowadź pierwszy numer. 34
Wprowadź 2. numer. 223
N1 jest mniej niż N2.

Przeładuj operatorów> i> =

Omówmy przeciążenie operatorów „>” i „> =”, uruchamiając program C ++.

Kod:

#włączać
za pomocą przestrzeni nazw Std;
Klasa Większa

prywatny:
liczba int;
publiczność:
void input_0 ()
Cin >> Numer;
Int Operator> (większy x)

if (liczba> x.numer)
zwrot 1;
w przeciwnym razie
powrót 0;

int operator> = (większy x)

if (liczba> = x.numer)
zwrot 1;
w przeciwnym razie
powrót 0;

;
int main ()

Większy N1, N2;
Cout<<"Please Enter 1st number. ";
n1. input_0 ();
Cout<<"Please Enter 2nd number. ";
n2. input_0 ();
if (n1> n2)
cout<<"n1 is greater than n2. ";
W przeciwnym razie if (n1> = n2)
cout<<"n1 is greater than or equal to n2. ";
w przeciwnym razie
cout<<"n1 is not greater than or equal to n2. ";
powrót 0;

Na początku wpisz #include i „Używanie przestrzeni nazw”. Następnie utwórz klasę „większą”, ponieważ przeciążamy operatorów> (większy niż) i> = (większy lub równy). Zdefiniuj członek danych „liczby” klasy i ustaw ten członek danych jako prywatny. Następnie utwórz metodę Input_0 (), aby uzyskać wartości dostarczane przez użytkownika. Ta funkcja ma być publiczna. Teraz użytkownik może wymienić numer za pomocą polecenia „Cin >>”. Wywołując metodę typu powrót liczby całkowitych i przekazując argument „większej” klasy do tej metody, możemy przeciążyć operator większy niż (>). Użyj warunku „jeśli”, aby zwrócić 1, jeśli „liczba” jest większa niż „x.numer". W przeciwnym razie zwróć 0.

Powtórz tę procedurę, aby przeciążyć operator (> =). Po wywołaniu metody main () utwórz obiekty klasy „większej”. Wykonaj „cout<<” statement and input_0() function for both objects of the class. Here, compare the input values. If the first condition is satisfied, the “if” body is implemented. If the second condition is satisfied, the “else-if” body is implemented. If no condition is satisfied, execute the “else” part.

Wyjście:

Wprowadź pierwszy numer. 432
Wprowadź 2. numer. 789
N1 nie jest większe ani równe N2.

Przeładuj == i != Operatorzy porównawcze

Zaimplementuj kod, aby sprawdzić, czy dwie wartości są równe, czy nie używają == i !=. Pokaż także, w jaki sposób operatorzy są przeciążeni.

Kod:

#włączać
za pomocą przestrzeni nazw Std;
klasa równa

prywatny:
liczba int;
publiczność:
void get_input ()
Cin >> Numer;
int operator == (równy x)

if (liczba == x.numer)
zwrot 1;
w przeciwnym razie
powrót 0;

operator int != (Równy x)

if (liczba!= x.numer)
zwrot 1;
w przeciwnym razie
powrót 0;

;
int main ()

Równe N1, N2;
Cout<<"Please enter 1st number. ";
n1.Get_input ();
Cout<<"Please enter 2nd number. ";
n2.Get_input ();
if (n1 == n2)
cout<<"n1 is equal to n2. ";
inaczej, jeśli (n1!= n2)
cout<<"n1 is not equal to n2. ";
w przeciwnym razie
cout<<"Sorry ";
powrót 0;

W pierwszym oświadczeniu włącz bibliotekę. Wraz z tym użyj „przestrzeni nazw”. Klasa „równa” jest tworzona w celu przeciążenia = (równa) i != (nie równi) operatorzy. Zdefiniuj zmienną „liczbę” o typu INT i zdefiniuj metodę get_input (). Teraz użyj „cin >>”, aby uzyskać liczbę całkowitą od użytkownika. Po tym przeładuj równość (=) i nie jest równa (!=) Operatorzy poprzez zastosowanie funkcji typu liczb całkowitych i ustawianie przeciążonego operatora na == i != w ciele tych funkcji. Dodatkowo użyj metody main (), aby utworzyć obiekty klasy „równych”. Uzyskaj wpisane wartości użytkownika, wywołując funkcję get_input () dwa razy. Porównaj te wartości, aby sprawdzić, czy są one równe, czy nie są równe. Nie musimy przeładować zarówno równych, jak i równych operatorów, ponieważ jeśli wartości są równe, wykonywane jest przeciążony równy operator. Jeśli nie, „else jeśli” wyświetli wiadomość na terminalu. Ale, aby wyjaśnić działanie obu metod tutaj, definiujemy dwie przeciążone metody.

Wyjście:

Wprowadź pierwszy numer. 45
Wprowadź 2. numer. 45
N1 jest równy N2.

Wniosek

Ten przewodnik pokazuje informacje o tym, czym są operatorzy porównawcze i jak możemy je przeciążyć w C++. Przeciążenie operatora porównawczego jest tak łatwe i proste, że jest to jak przeciążenie metody. Ale tutaj wspominamy o nazwie operatora z słowem kluczowym „Operator”. Wszyscy operatorzy porównawcze są przeciążone w kodach tego przewodnika.