L'utilisation de ce pointeur en C ++ avec l'exemple de code et une explication


Nous savons qu'une classe peut avoir des fonctions membres et variables membres. Comme il se réfère à l'objet qui a appelé la fonction de membre? La réponse est le pointeur «this». Le pointeur «this» fait référence à l'objet qui a appelé la fonction.
Dans de nombreux cas, il peut être tenu de restituer l'objet en cours au sein de la fonction membre. Nous explorons cela avec un exemple approprié.

2. Le code

Le code complet qui utilise ce pointeur indiqué ci-dessous:




// TestIt.cpp: Définit le point d'entrée pour le // Application. // #include "stdafx.h" #include "conio.h" Classe Point2D { publique: // Exemple 01: Ctor défaut Point2D (int a, int b) { x = a; y = b; } // Exemple 02: Une fonction qui démontre l'utilisation de ce Point2D * Augmentation () { x ++; y ++; return this; } // Exemple 03: Une fonction qui démontre l'utilisation de ce Point2D Diminution () { x--; y--; retourner (* this); } // Exemple 04: Imprimer Coordonnées Void print () { printf ("coordonnée X:% d \ n", x); printf ("coordonnée Y:% d \ n", y); } Privé: int x; int y; }; int _tmain (int argc, argv _TCHAR * []) { // Exemple 05: Cochez cette pointeur Point2D pt1 (4,4); Point2D * inc_point pt1.Increment = (); inc_point-> Release (); // Exemple 06: Cochez cette pointeur Point2D PT2 (2,2); Point2D dec_point pt2.Decrement = (); dec_point.Print (); getch (); }

3. Code Explication

Le constructeur initialise le membre de données x et y former les paramètres passés au constructeur.

// Exemple 01: Ctor défaut Point2D (int a, int b) { x = a; y = b; }

Par la suite, une fonction appelée augmentation est écrit et le but de la fonction est d'augmenter le membre de données 1 et retourner l'objet courant. Comment puis-je retourner l'objet courant? Ce est là que l'utilisation du mot clé "this" entre en image. Dans le code ci-dessous vous pouvez voir l'utilisation du "ce" mot-clé à la déclaration de retour.


// Exemple 02: Une fonction qui démontre l'utilisation de ce Point2D * Augmentation () { x ++; y ++; return this; }

La fonction de décrémentation de mise en oeuvre est similaire à la fonction de mise en oeuvre précédent. Mais cette fois, il renvoie l'objet lui-même au lieu de retourner un pointeur à l'objet courant. Voici une fonction qui diminue diminuer la valeur du point d'un.

Point2D Diminution () { x--; y--; retourner (* this); }

Les gravures de la fonction d'impression uniquement les valeurs des coordonnées X et Y. Cette fonction est directe et est ci-dessous:

// Exemple 04: Imprimer Coordonnées Void print () { printf ("coordonnée X:% d \ n", x); printf ("coordonnée Y:% d \ n", y); }

Dans l'ensemble, nous avons créé deux points pt1 et pt2. Nous augmentons pt1 et stockons l'adresse de retour dans un pointeur appelé inc_point. Pt2 est décrémenté et la valeur de retour est copié dans la variable d'dec_point. Le code se présente comme suit:

// Exemple 05: Cochez cette pointeur Point2D pt1 (4,4); Point2D * inc_point pt1.Increment = (); inc_point-> Release (); // Exemple 06: Cochez cette pointeur Point2D PT2 (2,2); Point2D dec_point pt2.Decrement = (); dec_point.Print ();

L'image ci-dessous montre comment les objets sont affichés dans les fonctions membres (par exemple, off):

La sortie de l'exécution de l'exemple est illustré dans la capture d'écran ci-dessous:

(0)
(0)
Article précédent Éléphant

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