N'ayant pas trouvé une réponse qui me satisfasse je me tourne vers vous pour une petite question de "détail" concernant la création d'un thread à l'intérieur d'une classe. Voici le contexte :
Je ne souhaite pas rendre static la méthode pour x raisons.
Ma question porte sur la syntaxe et les arguments à passer entre v.1 et v.2 : le this est-il nécessaire ou obligatoire ? Et surtout, pour quelles raisons ? (dans ma tête, ça voit les choses en mode "je suis déjà à l'intérieur de la classe, je ne sais donc pas pourquoi je devrais le spécifier à nouveau")
Merci pour vos éclaircissements sur ce point !
Max
.
Si ça n'explose pas, alors ce n'est pas intéressant.
This est implicite pour les appels qui sont effectués normalement avec l'opérateur ".", ce qui n'est pas le cas ici. Ici tu appelles le constructeur de thread.
Ma question porte sur la syntaxe et les arguments à passer entre v.1 et v.2 : le this est-il nécessaire ou obligatoire ? Et surtout, pour quelles raisons ? (dans ma tête, ça voit les choses en mode "je suis déjà à l'intérieur de la classe, je ne sais donc pas pourquoi je devrais le spécifier à nouveau")
Le this est obligatoire dès qu'il s'agit du fonction membre non statique. C'est comme décrit par la fonction std::invoke. On peut passer un certain nombre de paramètres selon les types de fonction (fonction libre, membre static ou non, placeholders, foncteurs, ...).
En arrière plan, quand tu passes une fonction membre non statique le mécanisme d'invocation a besoin de savoir sur quel objet l'appeler. Et cet objet peut-être passé par pointeur (this directement) ou par référence (mais peut faire des copie dans ce cas, sauf avec std::ref).
git is great because Linus did it, mercurial is better because he didn't.
This est implicite pour les appels qui sont effectués normalement avec l'opérateur ".", ce qui n'est pas le cas ici. Ici tu appelles le constructeur de thread.
Hello,
Merci pour vos réponses ! J'y vois bien plus clair sur ce point grâce à vous
- Edité par MaximeB25 24 juin 2019 à 11:28:25
Si ça n'explose pas, alors ce n'est pas intéressant.
création de thread à l'intérieur d'une classe
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Si ça n'explose pas, alors ce n'est pas intéressant.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
git is great because Linus did it, mercurial is better because he didn't.
Si ça n'explose pas, alors ce n'est pas intéressant.