0
votes

Comment comprendre le code comme celui-ci en C ++ [Demande-> en-têtes (). Méthode () -> Valeur (). GetStringview ())]

Je suppose que je suppose que le réduit à [demande-> en-têtes (). getMethodvalue ())] .

Je suis assez nouveau à C ++. Quelqu'un peut-il me dire comment comprendre ce type de code? Il existe plusieurs . opérateur et -> opérateur. Je perds la trace des classes et autres.

C'est un peu accablant.


2 commentaires

Savez-vous quels pointeurs sont? . est juste un accès membre et -> est le même, juste pour les pointeurs. Les IDes modernes peuvent vous aider à suivre les types d'expressions


Ceux-ci ressemblent à une combinaison chaînée et d'appels de membres (mon C ++ est rouillé). Comme @churill a mentionné que vous devez savoir comment fonctionnent les pointeurs et les fonctions membres, puis comment les chaîner (utiliser les résultats de la dernière commande pour la prochaine action). Ce n'est pas toujours une bonne pratique en C ++ en fonction de la fonction ne peut pas renvoyer le résultat attendu. Un parcours C ++ gratuit One YouTube vous pourriez essayer: YouTube.com/...


3 Réponses :


0
votes

En réalité, ces types de codes sont courants dans des langues prenant en charge la programmation orientée objet.

La raison la plus probable est que si elle est combinée bien avec la hiérarchie de la classe et l'héritage, la ligne unique réduit de nombreuses instructions if-else à la syntaxe de TERSE comme celle que vous avez mentionnée. Je vous suggère d'étudier sur les styles de programmation orientés objet, en particulier le polymorphisme pour comprendre ce type de code.


0 commentaires

0
votes

Le . est utilisé pour accéder à des trucs à l'intérieur de l'objet (fonctions, variables, etc.) L'opérateur -> est juste un . opérateur mais pour les pointeurs. Dans votre cas, vous appelez Demander 'S en-têtes qui renvoie un objet. Pour cet objet, vous appelez getMethodvalue fonction.


0 commentaires

0
votes

réponses déjà expliquées, que pour . code> opérateur et -> code> opérateur;

Un exemple serait; P>

Test tObj;

tObj.print() // print i;


0 commentaires