CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

This en C++

Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 16:20:25

Bonjour,

J'ai pas bien compris a quoi servait 'this' en C++, pouvez-vous m'éclairer un peut svp ?
Merci : :D

dark_drow
dark_drow
Niveau 15
18 mars 2015 à 16:23:26

Tu as compris la notion de classe et d'objet ?

Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 16:24:58

Plus ou moins oui, une classe ça sert à créer un objet avec des attributs et des fonctions....c'est ça non ?

[Kakuzu]2
[Kakuzu]2
Niveau 34
18 mars 2015 à 16:42:02

this renvoie à l'objet qui est actuellement utilisé. C'est utilisé pour différencier un nom passé en paramètre et un attribut de classe

ex :


...
public class Toto {
   ...
   private int nb;
   ...

   public void methode(int nb) {
         this.nb = nb;
   }
   ...
}

Dans l'exemple d'en haut, l'attribut nb prend la valeur du paramètre nb.
(c'est du java mais ça revient au même)

Message édité le 18 mars 2015 à 16:43:27 par [Kakuzu]2
Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 16:44:27

ha ok, si j'ai bien compris c'est pour désigner un attribut privé c'est ça ?

[Kakuzu]2
[Kakuzu]2
Niveau 34
18 mars 2015 à 16:46:13

Le 18 mars 2015 à 16:44:27 Ghosty93 a écrit :
ha ok, si j'ai bien compris c'est pour désigner un attribut privé c'est ça ?

Non pas vraiment.

Une définition tiré du premier lien trouvé sur google :

"Le mot-clé this désigne, dans une classe, l'instance courante de la classe elle-même."

En gros, ca désigne l'objet que tu utilise en ce moment. Difficile de mieux expliquer si on ne comprend pas le terme d'objet, classe, instance...

Edit : Je vais continuer sur du Java car je ne connais pas le C++, mais dit toi que ça revient au même.

Si par exemple j'utilise

System.out.println(this)

System.out.println() est une méthode Java qui permet d'afficher quelque chose, ça doit y ressembler en C++ j'imagine (un print quelque chose).
Et si tu affiches this, tu verras un truc bizarre. C'est l'adresse de l'objet que tu utilise actuellement (@14d8df18 un truc étrange dont tu n'as pas à te soucier).

Message édité le 18 mars 2015 à 16:50:43 par [Kakuzu]2
dark_drow
dark_drow
Niveau 15
18 mars 2015 à 16:53:44

le "this" c'est un pointeur sur l'objet sur lequel tu travaille (exemple http://pastebin.com/HF1ALFWY )
Evidement dans mon exemple délibérément simple le "this" ne sert pas a grand chose (si ce n'est la lisibilité du code)
Parfois ça sert aussi dans des cas tordu si tu as un objet A qui va créer un objet B, mais l'objet B à besoin de travailler sur l'objet A. Ton objet A va donc devoir donner à B une référence à lui-même quelque part dans ton code, et ça sera fait grâce à "this"

Message édité le 18 mars 2015 à 16:54:53 par dark_drow
Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 17:00:43

Ok dark_drow mais alors ça sert pas a grand chose dans ce code là (merci L pour ton message)

dark_drow
dark_drow
Niveau 15
18 mars 2015 à 17:27:41

tiens, un exemple tordu ou tu aurait besoin de ton "this" : http://pastebin.com/X1cEZeKp (dsl pour l'indentation foireuse)
(Note que ça compile pas car il reste à résoudre le problème de références circulaires - le compilateur à besoin de Test pour compiler SuiteTest et pour compiler Test il lui faut SuiteTest...)

Message édité le 18 mars 2015 à 17:29:00 par dark_drow
Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 17:59:45

okké

rangerprice
rangerprice
Niveau 10
18 mars 2015 à 18:01:10

Le 18 mars 2015 à 16:24:58 Ghosty93 a écrit :
Plus ou moins oui, une classe ça sert à créer un objet avec des attributs et des fonctions....c'est ça non ?

Non pas du tout.
Einstein donne une photo à Patrick, son admirateur.
Patrick va décider de faire des copies de la photo reçu de Einstein pour en faire des exemplaires et mettre le tout à vendre dans sa boutique de vêtement bon marché.
La foule achète toute les photos dans son magasin !

Dans cette metaphore, La photo donné par Einstein est la classe, et toute les copies que Patrick fait son des objets :hap:
Tu peux considérer un objet comme une vulgaire imitation d'une classe :hap:

Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 18:43:15

oui c'est ce que je pensais, je vois :)

[Kyomaro]
[Kyomaro]
Niveau 10
18 mars 2015 à 20:08:37

Je vois que tu programmes en Python, le this en C++ est un peu comme self en python.

Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 20:40:05

Ha ok...mais alors ça veut dire qu'on peut créer des variables avec 'this' ??

Ghosty93
Ghosty93
Niveau 10
18 mars 2015 à 20:57:22

Comment ça Kyomaro ?

[Kyomaro]
[Kyomaro]
Niveau 10
18 mars 2015 à 21:52:12

Eh bien si tu sais pas ce qu'est self, là je peux pas t'aider :hap:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment