IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Cas d'utilisation de this


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut Cas d'utilisation de this
    Bonjour,

    Je me pose une question sur l'utilisation du pointeur this.
    Je vois bien l'utilite pour le passage d'argument etc, par contre quand je vois un morceau de code comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void MaClasse::MaFonction()
    {
    	this->Func1();
    	this->Func2();
    }
    Pourquoi utiliser une notation comme ça au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void MaClasse::MaFonction()
    {
    	Func1();
    	Func2();
    }
    Meme si Func1 et Func2 sont virtuelles et definies dans un parent on va utiliser toujours la methode de plus bas niveau et si l'on veut utiliser une methode de plus haut niveau on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void MaClasse::MaFonction()
    {
    	MaMere::Func1();
    	MaMere::Func2();
    }
    Donc pourquoi l'utiliser dans ce cas listé en haut ?

    Merci

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Salut

    C'est principalement une raison de lisibilité lors de l'apprentissage, pour qu'un débutant comprenne bien que c'est une fonction membre. Mais c'est une pratique que l'on change rapidement, dès que l'on sait que c'est pas nécessaire
    Bref, pas d'utilité autre que pédagogique

    (à distinguer du cas avec les templates où le this est obligatoire)

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    Personnellement, je suis de ceux qui utilisent toujours this parce qu'on voit tout de suite ce qui appartient a la classe. C'est très utile quand on doit lire le code de quelqu'un d'autre et qu'il y a des tonnes de variables, sans qu'on soit trop sur d'ou elles viennent. Aussi, si on voit une méthode sans aucun this, on peut se demander s'il vaudrait pas mieux la passer en méthode statique.

  4. #4
    Membre très actif
    Avatar de EtherOS
    Homme Profil pro
    Etudiant Polytechnicien
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant Polytechnicien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Par défaut
    l'utilisation des this permet la clarté et la compréhension du code.je suis de mem avis que math_lab

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Je crois que le this est obligatoire en JAVA, PHP (C# ?). Les développeurs qui en viennent en mettent donc partout par habitude.

    Mais l'écrire est inutile, et en tant que programmeur et donc feignant, je ne me fatigue pas à écrire des choses inutiles.
    Pour savoir d'où viennent les choses, on a des conventions d'écritures.
    m_ préfixe les variables membres, s_ les static. Les noms de méthode membres débutent par une minuscule, les méthodes libres et static par une majuscule, on découpe en namespace claires, ...
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Dans 90% des cas, this ne sert strictement à rien et sera omis dans du code de production.

    On arrive en effet assez facilement à comprendre que si l'on appelle une fonction sans passer par un objet, on appelle soit une fonction membre de l'objet en cours soit une fonction libre, et cela suffit amplement, si les noms sont correctement choisis, pour lever toute ambigüité

    Dans quelques cas particuliers, this est cependant nécessaire lorsque l'on travaille avec des classes template, pour, justement, lever certaines ambigüités.

    Je serais donc de l'avis de bousk: A but didactique, dans un premier temps, il peut etre utile d'utiliser this, mais, étant fainéant de nature, c'est généralement le genre de chose qu'on abandonne très rapidement
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Ok merci donc c'est purement selon les conventions de chacun.
    Je suis plutôt de l'avis de Bousk et Koala01, dans le sens ou chaque appel d'une méthode est par défaut d'une méthode membre, donc spécifier a l'inverse le cas contraire.

    Merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Modélisation] Maille des cas d'utilisation
    Par ftrifiro dans le forum Cas d'utilisation
    Réponses: 14
    Dernier message: 28/08/2005, 18h39
  2. Cas d'utilisation, quel niveau de détails
    Par Celelibi dans le forum Cas d'utilisation
    Réponses: 5
    Dernier message: 20/02/2005, 20h16
  3. [Modélisation] Cas d'utilisation et acteurs
    Par ftrifiro dans le forum Cas d'utilisation
    Réponses: 5
    Dernier message: 30/01/2005, 15h20
  4. cas d'utilisation
    Par Yveke dans le forum Cas d'utilisation
    Réponses: 7
    Dernier message: 23/12/2004, 10h27
  5. [corba] débutant : dans quels cas l'utiliser
    Par jmturc dans le forum CORBA
    Réponses: 2
    Dernier message: 10/10/2002, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo