Le concept de la surcharge d'opérateur en C ++


Langage de programmation C ++ se concentre sur la programmation orientée objet, qui a plusieurs avantages par rapport à la forme conventionnelle. La liberté de créer un type de données défini par l'utilisateur étendu de codage fonctionnalité et programmes simplifiés long et compliqué. Les objets peuvent avoir différents attributs pertinents à la classe et sont traités fonctions membres ou ami comme le cas.

Surcharge d'opérateur notion donne une signification particulière pour un opérateur comme «+» ou «-». Addition ou soustraction ne peuvent être exécutées directement avec les objets comme nous le faisons avec les types de données de base. Comment surcharger les fonctions, les opérateurs peuvent également être surchargés pour effectuer cette tâche. Ceci est réalisé avec l'aide de fonctions membres et les fonctions d'amis. La forme générale d'une fonction de l'opérateur surchargé est




type d'opérateur op (liste des sujets) de retour;

où 'op' est le signe pour 'opérateur.

surcharge de l'opérateur au moyen de fonctions de membres


Alors que la surcharge des opérateurs avec des fonctions de membre, seuls les objets appartenant à cette classe y ont accès. Donc, l'objet serait utilisé pour invoquer le premier opérande et les objets ou variables spécifié dans la liste des arguments seraient les opérandes restants.

Un opérateur unaire surchargé par une fonction de membre ne aura pas d'arguments et un opérateur de fonction surchargée binaire aura qu'un seul argument.

Par exemple, la fonction l'opérateur unaire moins surchargé devrait être

le type de retour de l'opérateur ()

et un opérateur de fonction surchargée doit être binaire

Type de retour opérateur + (argument 1);

Un exemple pour la surcharge d'opérateur via la fonction de membre peut être lue ici.

Il peut y avoir des situations où tous les opérandes ne doivent pas être des objets (types de données, définies par l'utilisateur) d'une classe. Lorsque l'opérande gauche d'un opérateur binaire ne est pas un type de données défini par l'utilisateur, en utilisant une fonction membre ne fonctionne pas. Ces cas sont traités à l'aide de fonctions amis qui prennent deux opérandes comme paramètres.


surcharge de l'opérateur au moyen de fonctions de ami


Fonctions Friend sont traités comme des fonctions normales qui ne ont pas accès aux membres privés d'une classe. Ils peuvent être appelés en fonction normale, et les opérateurs peuvent être surchargés par leur intermédiaire. Tous les opérandes sont passés comme arguments explicitement ici. La forme générale d'une fonction ami surchargé opérateur

Ami type de retour opérateur op (liste des sujets);

où 'op' est le signe pour 'opérateur.

Par exemple, une fonction ami surchargé opérateur unaire doit être

Ami type de l'opérateur (sujet) de retour et

une fonction ami opérateur surchargé doit être binaire

Ami type de retour opérateur + (argument1, argument2);

Bien que des fonctions amies ne peuvent pas surcharger des opérateurs tels que l'opérateur d'affectation (=), l'opérateur d'indexation ([]), exploitant de l'appel de fonction (()), et l'accès de l'utilisateur opérateur (->) venu utile dans certaines situations où fonctions membres ont gagné 't aide. Dans multiplication scalaire d'un vecteur, un entier (built-in type de données) et un objet (de type de données défini par l'utilisateur) sont des opérandes. Lorsque l'objet devient l'opérande gauche, la surcharge d'opérateur grâce à la fonction de député travailler. Mais dans d'autres cas, cela ne fonctionnera pas comme un objet de la classe en question est nécessaire comme opérande de gauche, afin d'appeler la fonction membre. fonctions Friend peuvent résoudre ce problème en prenant les deux opérandes comme arguments.

Quelques règles pour les opérateurs de surcharge


  1. Seuls les opérateurs existants peuvent être surchargés. Nous ne pouvons pas créer de nouveaux opérateurs à la surcharge.
  2. Nous ne pouvons pas changer la signification de base d'un opérateur. Nous ne pouvons pas redéfinir opérateur '+' pour soustraire une valeur de l'autre.
  3. Opérateurs surchargés suivent les règles de syntaxe de l'opérateur d'origine. Ils ne peuvent pas être ignorés.
  4. Il ya certains opérateurs qui ne peuvent être surchargés.
  5. Les opérateurs binaires tels que '+', '-', '*' et '/' doivent explicitement retourner une valeur.

Les opérateurs qui ne peuvent être surchargés

Prénom syntaxe sizeof sizeof () adhésion . * conditionnel ?: la capacité de résolution ::
  • C ++ de code de programme pour plus polynomiale utilisant binar ...
    Même si la logique engagé par addition polynôme en C ++ est égale à celle de C, C ++, avec l'avantage principal est que les deux polynômes peuvent être ajoutés directement avec le concept de la surcharge d'opérateur.
  • Informations sur orientée objet langage de programmation C ++
    Si le volume de données impliqués dans un problème de plus, il devient difficile de programmer en utilisant la programmation classique. Dans ce cas, les données sont organisées pour former une classe (comme dans la structure C), du type et de la programmation définie par l'utilisateur est effectuée sur les données
  • Comment apprendre la programmation; 5 meilleures ressources pour une beg ...
    l'apprentissage de la programmation est accompagné livres ressources, langages de programmation, le code source, la puissance et le désir de la pensée. Ces ressources ont été examinées en détail dans ce centre.
  • Surcharge '+' opérateurs binaires en langage C ++
    Dans cet endroit, je vais vous expliquer comment surcharger l'opérateur binaire '+' que la fonction de membre de la classe et la fonction comme un ami. Nous allons également voir dans quelle situation nous devons mettre en œuvre comme un ami ...
  • Apprendre la programmation orientée objet en C ++ (partie 1)
    Découvrez ce est C ++ comment programmer dans cette langue. Qu'est-ce que la programmation orientée objet ou oops concept.Learn tout sur C ++ gratuitement et en ligne
  • Les avantages de la programmation orientée objet
    Les avantages de la programmation orientée objet

(0)
(0)

Commentaires - 0

Sans commentaires

Ajouter un commentaire

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caractères restants: 3000
captcha