Video: Learn Python - Full Course for Beginners [Tutorial] 2025
De intrinsieke gegevenstypen zijn ingebouwd in de C ++ taal, zoals int , float , en verdubbelen en de verschillende aanwijzer types. Met C ++ kan de programmeur de operators definiëren voor klassen die de programmeur naast deze intrinsieke operators heeft aangemaakt. Dit wordt overbelasting door de operator genoemd.
Normaal gesproken is overbelasting door de operator optioneel en niet geprobeerd door beginnende C ++ -programmeurs. Veel ervaren C ++ -programmeurs vinden de overbelasting van de operator ook niet zo'n geweldig idee. U zult echter moeten leren hoe u één operator overbelast: de toewijzingsoperator.
Een operator is niets meer dan een ingebouwde functie met een eigenaardige syntaxis. De volgende optelbewerking
a + b
zou kunnen worden opgevat alsof het
operator + (a, b)
was. In feite geeft C ++ elke operator een functiestijlnaam. De functionele naam van een operator is het operatorsymbool voorafgegaan door de sleutelwoordoperator en gevolgd door de juiste argumenttypes. De operator + die een int toevoegt aan een int die een int genereert, wordt int-operator + (int, int) genoemd.
Elke bestaande operator kan worden gedefinieerd voor een door de gebruiker gedefinieerde klasse. Zodoende zou ik een Complexe operator * (const Complex &, const Complex &) kunnen maken waarmee ik twee objecten van het type Complex zou kunnen vermenigvuldigen. De nieuwe operator kan dezelfde semantiek hebben als de operator die overbelast is, maar dat hoeft niet. De volgende regels zijn van toepassing bij het overbelasten van operatoren:
-
Het programmeerapparaat kan de niet overbelasten. (punt), :: (dubbele punt), . *, * ->, sizeof en ?: (ternair) operatoren.
-
De programmeur kan geen nieuwe operator uitvinden. U kunt bijvoorbeeld de bewerking x $ y niet uitvinden.
-
De syntaxis van een operator kan niet worden gewijzigd. U kunt dus geen bewerking% i definiëren omdat% al is gedefinieerd als een binaire operator.
-
De prioriteit van de operator kan niet veranderen. Een programma kan operator + niet dwingen om geëvalueerd te worden voor operator * .
-
De operators kunnen niet opnieuw worden gedefinieerd wanneer ze worden toegepast op intrinsieke typen. U kunt de betekenis van 1 + 2 niet wijzigen. Bestaande operators kunnen alleen worden overladen voor nieuw gedefinieerde typen.
Operators voor overbelasting zijn een van die dingen die een veel beter idee lijken dan het in werkelijkheid is. Gewoonlijk introduceert overbelasting door de operator meer problemen dan het oplost.
