C ++ overbelastnings sammenligningsoperatør

C ++ overbelastnings sammenligningsoperatør
Overbelastning er konseptet som lar programmereren spesifisere mer enn en metode for forskjellige funksjonaliteter. Dette er ikke bare bundet til metoder; Vi kan også overbelaste de mange operatørene som sammenligningsoperatører. Operatører er symbolene som utfører operasjonene på operandene (verdiene). Sammenligning er når du sammenligner to verdier med hverandre ved å bruke beslutningsuttalelsene. Overbelastning av sammenligningsoperatøren betyr å definere mer enn en sammenligningsavgjørelsesuttalelse. Vi utfører en overbelastning av sammenligning på klassene når en klasse er ansatt og vi setter en tilstand i klassen. Utenfor klassen setter vi også samme betingelse for objektene. Dette overbelaster operatøren. Ellers ville ikke kompilatoren kunne håndtere disse forholdene.

Metodesyntaks:
Return_type operatør operatør_symbol ()

Metoden for en overbelastet operatør er definert litt annerledes. Det er en metode av returtype som inneholder ordet operatør med operatøren_symbol som vi ønsker å overbelaste.

Overbelaste sammenligningsoperatøren

Det er seks oppdragsoperatører, og alle seks kan overbelastes. Disse kalles sammenligningsoperatører fordi de sammenligner to verdier eller variabler (som lagrer verdiene) med hverandre. Når tilstanden er fornøyd, utføres neste operasjon. Det er veldig nyttig å overbelaste operatørene når vi må sammenligne verdiene med hverandre basert på forskjellige forhold. De seks sammenligningsoperatørene med funksjonalitetene blir forklart i følgende diskusjon.

1. < - Jo mindre enn operatøren sammenligner følgende tilstand: Hvis det første heltallet er mindre enn det andre, utfør kroppen.

2. > - Den større enn operatøren sammenligner følgende tilstand: Hvis det første heltallet er større enn det andre, utfør kroppen.

3. <= - Jo mindre enn eller lik operatøren sammenligner følgende tilstand: Hvis den første termen er mindre eller lik den andre, utfør kroppen.

4. > = - Jo større enn eller lik operatøren sammenligner følgende tilstand: Hvis den første termen er større eller lik den andre, utfør kroppen.

5. == - Dobbelt tilsvarer sjekker om de to heltallene er like eller ikke. Hvis ja, utfør kroppen. Ellers, gå til neste uttalelse.

6. != - Den ikke like operatøren evaluerer om de to begrepene ikke er like. Hvis ja, utfør kroppen. Ellers blir tilstanden falsk og neste uttalelse blir utført.

Vi sammenligner alle verdiene ved å bruke alle de seks sammenligningsoperatørene parvis: =, == og !=.

Overbelaste < and <= Comparison Operators

La oss sammenligne de to verdiene ved å bruke “<” and “<=” operators. Then, overload these operators.

Kode:

#inkludere
ved hjelp av navneområdet STD;
klasse mindre

privat:
int -nummer;
offentlig:
void input_0 ()
cin >> nummer;
int operatør < (Less x)

hvis (nummerretur 1;
ellers
retur 0;

int operatør <= (Less x)

hvis (nummer<=x.number)
retur 1;
ellers
retur 0;

;
int main ()

Mindre n1, n2;
cout<<"Please enter 1st number. ";
n1. input_0 ();
cout<<"Please enter 2nd number. ";
n2. input_0 ();
hvis (n1cout<<"n1 is less than n2. ";
ellers hvis (n1<=n2)
cout<<"n1 is less than or equal to n2. ";
ellers
cout<<"n1 is not less than or equal to n2. ";
retur 0;

I denne koden, innlem biblioteket og navneområdet STD. Definere en "mindre" klasse fordi vi i dette eksemplet overbelaster < (less than) and >”Slik at brukeren kan sette inn nummeret. Nå, overbelaste det mindre enn (<) 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.

Overbelaste den mindre enn eller lik (<=) 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.

Produksjon:

Vennligst skriv inn 1. nummer. 34
Vennligst skriv inn 2. nummer. 223
N1 er mindre enn N2.

Overbelaste> og> = sammenligningsoperatører

La oss diskutere overbelastningen av ">" og "> =" -operatører ved å kjøre C ++ -programmet.

Kode:

#inkludere
ved hjelp av navneområdet STD;
klasse større

privat:
int -nummer;
offentlig:
void input_0 ()
cin >> nummer;
int operatør> (større x)

if (nummer> x.Antall)
retur 1;
ellers
retur 0;

int operatør> = (større x)

if (nummer> = x.Antall)
retur 1;
ellers
retur 0;

;
int main ()

Større 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. ";
annet hvis (n1> = n2)
cout<<"n1 is greater than or equal to n2. ";
ellers
cout<<"n1 is not greater than or equal to n2. ";
retur 0;

I starten, skriv #include og "Bruke navneområde STD". Etter dette, lag en "større" klasse siden vi overbelaster> (større enn) og> = (større enn eller lik) operatører i denne koden. Definer et "tall" datamedlem i klassen og sett dette datamedlemmet som privat. Opprett deretter en input_0 () -metode for å oppnå brukereverdier. Denne funksjonen er satt til å være offentlig. Nå kan brukeren nevne nummeret ved å bruke kommandoen “cin >>”. Ved å kalle heltalls returtypemetoden og sende et argument fra den "større" klassen til denne metoden, kan vi overbelaste den større enn (>) operatøren. Bruk "hvis" -tilstanden for å returnere 1 hvis "antallet" er større enn "x.Antall". Ellers, returner 0.

Gjenta denne prosedyren for å overbelaste operatøren (> =). Etter å ha kalt Main () -metoden, lag gjenstandene i den "større" klassen. Utfør “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.

Produksjon:

Vennligst skriv inn 1. nummer. 432
Vennligst skriv inn 2. nummer. 789
N1 er ikke større enn eller lik N2.

Overbelaste == og != Sammenligningsoperatører

Implementere koden for å sjekke om to verdier er like eller ikke ved bruk av == og !=. Vis også hvordan disse operatørene er overbelastet.

Kode:

#inkludere
ved hjelp av navneområdet STD;
Klasse lik

privat:
int -nummer;
offentlig:
void get_input ()
cin >> nummer;
int operatør == (lik x)

if (nummer == x.Antall)
retur 1;
ellers
retur 0;

int operatør != (Lik x)

hvis (nummer!= x.Antall)
retur 1;
ellers
retur 0;

;
int main ()

Lik 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. ";
ellers hvis (n1!= n2)
cout<<"n1 is not equal to n2. ";
ellers
cout<<"Sorry ";
retur 0;

I den første uttalelsen, innlem biblioteket. Sammen med dette, bruk "Namespace Std". En "lik" klasse er opprettet for å overbelaste = (lik) og != (ikke like) operatører. Definer en "tall" -variabel som har en INT -type, og definer get_input () -metoden. Bruk nå “CIN >>” for å få heltallet fra brukeren. Etter dette, overbelast lik (=) og ikke lik (!=) Operatører ved å bruke funksjonene til heltallstypen og sette den overbelastede operatøren til == og != i kroppen av disse funksjonene. Bruk i tillegg Main () -metoden for å lage objektene i den "like" klassen. Få brukerens typede verdier ved å ringe Get_Input () -funksjonen to ganger. Sammenlign disse verdiene for å sjekke om de er like eller ikke like. Vi trenger ikke å overbelaste både like og ikke like operatører, fordi hvis verdiene er like, blir en overbelastet lik operatør utført. Hvis ikke, vil "annet hvis" vise en melding på terminalen. Men for å forklare arbeidet med begge metodene her, definerer vi de to overbelastede metodene.

Produksjon:

Vennligst skriv inn 1. nummer. 45
Vennligst skriv inn 2. nummer. 45
N1 er lik N2.

Konklusjon

Denne guiden viser en informasjon om hva sammenligningsoperatørene er og hvordan vi kan overbelaste dem i C++. Overbelastning av sammenligningsoperatøren er så enkelt og enkelt, det er akkurat som å overbelaste en metode. Men her nevner vi det overbelastede operatørnavnet med nøkkelordet "operatør". Alle sammenligningsoperatørene er overbelastet i kodene til denne guiden.