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 :

operateur this fonctions class


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut operateur this fonctions class
    Bonjour
    Je n'arrive pas vraiment a comprendre ce que fait l'operateur this, ci-dessous un exemple de code utilisant this :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    class<T> A
    {
    ...
    }
     
    A::fonction1(){....}
     
     
    A::fonction(int x)
    {
    ....
    this->fonction1(); 
    }
     
    B::fonction2()
    {
    y=this->fonction1()
    this->fonction(y); 
    }

    je ne comprends pas ce que la ligne de code suivante va faire

    Est qu'on peut faire des fonctions sans preciser a la fin de la fonction la valeur a retourner, dans ce cas que doit rendre la fonction a l'appel comme valeur.


    est ce que la ligne de code suivante


    peut etre remplace par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A obj; 
    obj.function1()

    Si oui, dans cas quel est l'avantage de l'operateur this ?

    Merci

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Bonjour,

    this contient l'instance sur laquelle l'opération à été appliquée.

    [edit]écrire explicitement this->... ne sert généralement à rien car il est implicite[/edit]
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    S'il n y pas a la fin de la fonction fonction() de "return", alors que va faire la ligne

    this->fonction(y);

    Merci


    Citation Envoyé par bruno_pages Voir le message
    Bonjour,

    this contient l'instance sur laquelle l'opération à été appliquée.

    [edit]écrire explicitement this->... ne sert généralement à rien car il est implicite[/edit]

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par loisir1976 Voir le message
    S'il n y pas a la fin de la fonction fonction() de "return", alors que va faire la ligne
    this->fonction(y);
    s'il n'y a pas de return l'opération ne rend rien, celle-ci doit donc être déclarée void

    en fait le problème ce situe déjà au niveau de la définition de l'opération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A::fonction(int x)
    {
    ....
    this->fonction1(); 
    }
    car il n'y a pas d'indication du type de la valeur retournée / void
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Ton code a l'air incomplet. Il faudrait que tu postes l'intégralité du code qui te pose question car les réponses sont probablement liées (comme l'utilisation de this qui est parfois nécessaire ou ton problème de valeur de retour alors que les fonctions n'en précisent pas).

  6. #6
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Salut
    Je travaille sur un grand code que je n'arrive pas a dechiffrer et malheureusement je n'ai pas le droit a le diffuser. Je viens d'envoyer des precisions sur la fonction
    Merci

    Citation Envoyé par 3DArchi Voir le message
    Salut,
    Ton code a l'air incomplet. Il faudrait que tu postes l'intégralité du code qui te pose question car les réponses sont probablement liées (comme l'utilisation de this qui est parfois nécessaire ou ton problème de valeur de retour alors que les fonctions n'en précisent pas).

  7. #7
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Effectivement la fonction est declare void, mais que vas faire la ligne de code

    this->fonction(y);

    dans la fonction fonction2

    Merci
    PS : je travaille sur un grand code que je n'arrive pas a dechiffrer et malheureusement je n'ai pas le droit a le diffuser.


    Citation Envoyé par bruno_pages Voir le message
    s'il n'y a pas de return l'opération ne rend rien, celle-ci doit donc être déclarée void

    en fait le problème ce situe déjà au niveau de la définition de l'opération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A::fonction(int x)
    {
    ....
    this->fonction1(); 
    }
    car il n'y a pas d'indication du type de la valeur retournée / void

  8. #8
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par loisir1976 Voir le message
    mais que vas faire la ligne de code

    this->fonction(y);
    et bien cela applique l'opération fonction avec l'argument y à l'instance courante, cela aurait pu être écrit fonction(y); car this est implicite dans ce cas
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. this et classe "parent"
    Par TabrisLeFol dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 13h42
  2. Template d'une fonction (!= classe)
    Par Rodrigue dans le forum Langage
    Réponses: 7
    Dernier message: 08/05/2006, 22h02
  3. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01
  4. [Surcharge]Operateur<< avec une classe maison
    Par KeNnEdY dans le forum C++
    Réponses: 6
    Dernier message: 14/09/2005, 15h51
  5. declaration static d'une fonction classe
    Par SBP dans le forum MFC
    Réponses: 2
    Dernier message: 06/07/2004, 14h40

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