C++ Overbelastingsvergelijkingsoperator in

C Overbelastingsvergelijkingsoperator In



Overbelasting van operators is een cruciaal concept in C++ waarmee u de functionaliteit van de ingebouwde operators kunt bereiken terwijl u werkt met door de gebruiker gedefinieerde gegevenstypen. Vergelijkingsoperatoren in C++ zijn degenen die er zijn om twee waarden met elkaar te vergelijken, zoals '==', '!=', '>', '<', '>=' en '<='. Dit artikel deelt de methoden voor het overbelasten van alle zes deze vergelijkingsoperatoren in C ++ in Ubuntu 20.04.

Voorbeeld # 1: Overbelasting van de operator '==' in C++:

Om de operator '==' in C++ te overbelasten, hebben we de volgende C++-klasse ontworpen:







De naam van onze C++-klasse is ProductPrice. Binnen deze klasse hebben we een particuliere ledenprijs. Daarna hebben we enkele openbare ledenfuncties. De eerste functie, 'userInput' genaamd, neemt de productprijs als invoer van de gebruiker. Dan hebben we de functie voor het overbelasten van de '==' operator in C++. We hebben een object van de klasse ProductPrice aan deze functie doorgegeven. Binnen deze functie hebben we een 'if'-instructie die 'true' retourneert als de prijzen van de twee producten gelijk zijn, anders 'false'.



Om dit te testen, hebben we de driverfunctie weergegeven in de onderstaande afbeelding:







In onze functie 'main()' hebben we eerst twee objecten van onze klasse gemaakt. Vervolgens hebben we de functie 'userInput' aangeroepen met elk van de twee objecten één voor één om de prijzen van de twee producten als invoer van de gebruiker te nemen. Daarna hebben we een 'als' -verklaring om een ​​bericht af te drukken als de twee prijzen gelijk zijn en een ander bericht als dat niet het geval is.

We hebben dit programma gecompileerd met behulp van de volgende opdracht:



$ g++ ComparisonOperator.cpp –o ComparisonOperator

Vervolgens hebben we het uitgevoerd met behulp van de onderstaande opdracht:

$ . / Vergelijkingsoperator

Bij het uitvoeren van deze code werd ons gevraagd om de prijs van het eerste product in te voeren, zoals weergegeven in de volgende afbeelding:

Vervolgens werd ons gevraagd om de prijs van het tweede product in te voeren, zoals weergegeven in de onderstaande afbeelding:

Aangezien we voor beide producten dezelfde prijzen hebben ingevoerd, kunnen we in de volgende uitvoer zien dat onze operator '==' met succes is overbelast.

Om het nu te testen voor de 'anders' -verklaring, hebben we twee verschillende productprijzen ingevoerd, zoals weergegeven in de onderstaande afbeelding:

Voorbeeld # 2: Overbelasting van de operator '!=' in C++:

Om de operator '!=' in C++ te overbelasten, hebben we de volgende C++-klasse ontworpen:

Dit programma lijkt erg op ons eerste voorbeeld. Het enige verschil is dat we de operator '==' overal hebben vervangen door de operator '!='.

Om dit te testen, hebben we de driverfunctie weergegeven in de onderstaande afbeelding:

We hebben de functie 'userInput' genoemd in onze functie 'main()' met elk van de twee objecten een voor een om de prijzen van de twee producten als invoer van de gebruiker te nemen. Daarna hebben we een 'als'-verklaring om een ​​bericht af te drukken als de twee prijzen niet gelijk zijn en een ander bericht als dat wel het geval is.

Toen we deze code uitvoerden met twee verschillende productprijzen, kwamen we erachter dat onze ongelijkheidsoperator met succes was overbelast, zoals je kunt zien op de volgende afbeelding:

Om het nu te testen voor de 'anders' -verklaring, hebben we twee vergelijkbare productprijzen ingevoerd, zoals weergegeven in de onderstaande afbeelding:

Voorbeeld # 3: Overbelasting van de operator '>' in C++:

Om de operator '>' in C++ te overbelasten, hebben we de volgende C++-klasse ontworpen:

Dit programma is ook vergelijkbaar met onze voorbeelden hierboven. Het enige verschil is dat we de operator '!=' overal hebben vervangen door de operator '>'.

Om dit te testen, hebben we de driverfunctie weergegeven in de onderstaande afbeelding:

We hebben de functie 'userInput' genoemd in onze functie 'main()' met elk van de twee objecten een voor een om de prijzen van de twee producten als invoer van de gebruiker te nemen. Daarna hebben we een 'als' -verklaring om een ​​bericht af te drukken als de eerste prijs hoger is dan de andere en een ander bericht als dat niet het geval is.

Toen we deze code uitvoerden met twee verschillende productprijzen, kwamen we erachter dat onze operator groter dan met succes was overbelast, zoals je kunt zien op de volgende afbeelding:

Om het nu te testen voor de 'anders' -verklaring, hebben we twee vergelijkbare productprijzen ingevoerd, zoals weergegeven in de onderstaande afbeelding:

Voorbeeld # 4: Overbelasting van de operator '<' in C++:

Om de operator '<' in C++ te overbelasten, hebben we de volgende C++-klasse ontworpen:

Dit programma is ook vergelijkbaar met onze voorbeelden hierboven. Het enige verschil is dat we de '>'-operator overal hebben vervangen door de '<'-operator.

Om dit te testen, hebben we de driverfunctie weergegeven in de onderstaande afbeelding:

We hebben de functie 'userInput' genoemd in onze functie 'main()' met elk van de twee objecten een voor een om de prijzen van de twee producten als invoer van de gebruiker te nemen. Daarna hebben we een 'als'-verklaring om een ​​bericht af te drukken als de eerste prijs lager is dan de andere en een ander bericht als dat niet het geval is.

Toen we deze code uitvoerden met twee verschillende productprijzen, kwamen we erachter dat onze minder dan-operator met succes was overbelast, zoals je kunt zien op de volgende afbeelding:

Om het nu te testen voor de 'anders' -verklaring, hebben we opnieuw twee verschillende productprijzen ingevoerd, maar deze keer is de prijs van het eerste product hoger dan die van het tweede, zoals weergegeven in de onderstaande afbeelding:

Voorbeeld # 5: Overbelasting van de “>=” operator in C++:

Voor het overbelasten van de operator '>=' in C++ hebben we de volgende C++-klasse ontworpen:

Dit wijkt enigszins af van onze voorbeelden hierboven. Terwijl we de operator deze keer overbelasten, hebben we twee voorwaarden binnen de 'if' -instructie gescheiden door de '||' symbool. Het betekent dat deze verklaring zal controleren of de prijs van een product groter is dan of gelijk is aan een ander.

Om dit te testen, hebben we de driverfunctie weergegeven in de onderstaande afbeelding:

We hebben de functie 'userInput' genoemd in onze functie 'main()' met elk van de twee objecten een voor een om de prijzen van de twee producten als invoer van de gebruiker te nemen. Daarna hebben we een 'als' -verklaring om een ​​bericht af te drukken als de eerste prijs groter is dan of gelijk is aan de andere en een ander bericht als dat niet het geval is.

Toen we deze code uitvoerden met twee verschillende productprijzen, kwamen we erachter dat onze operator groter dan of gelijk aan met succes is overbelast, zoals u kunt zien in de volgende afbeelding:

Om het nu te testen voor de 'anders' -verklaring, hebben we de eerste productprijs lager ingevoerd dan de tweede, zoals weergegeven in de onderstaande afbeelding:

Voorbeeld # 6: Overbelasting van de operator '<=' in C++:

Door dezelfde methode te volgen als ons vijfde voorbeeld, hebben we ook de operator '<=' overbelast en de code is als volgt:

De uitvoeringsresultaten van dit programma met verschillende waarden worden weergegeven in de onderstaande afbeeldingen:

Conclusie:

Dit artikel legde heel goed uit hoe je de zes vergelijkingsoperatoren in C++ in Ubuntu 20.04 kon overbelasten. We begonnen met een korte introductie van operatoroverbelasting, daarna waren alle zes vergelijkingsoperatoren in C++ overbelast. We hebben dezelfde door de gebruiker gedefinieerde klasse gebruikt om al deze methoden te demonstreren. Zodra u deze methoden hebt doorlopen, kunt u deze vergelijkingsoperatoren overbelasten voor elke andere door de gebruiker gedefinieerde klasse.