Est-il préférable de faire des getters et setters inline?

public:
     inline int GetValue() const {
          return m_nValue;
     }
     inline void SetValue(int nNewValue) {
          this -> m_nValue = nNewValue;
     }

Sur Apprendre le C++, ils ont dit qu'il irait plus vite. Alors, j'ai pensé qu'il serait idéal pour une utilisation sur les getters et les setters. Mais peut-être, il ya quelques inconvénients à cela?

  • Merci à tous! Conclusion générale: ne le faites pas, le compilateur va prendre soin d'elle.
  • Il dépend. Si vous les avez dans la définition de la classe, il n'est pas nécessaire de l'inclure, car ils le sont déjà par défaut. Si vous faites la mise en œuvre dans un autre .fichier cpp, alors il est à l'éditeur de liens, ce qui peut être intelligent comme sur la célèbre plates-formes ou tout simplement un muet de l'éditeur de liens qui ne sont pas inline rien à moins de connaître les quais autant que je sache.
  • Permettez-moi d'ajouter quelques mots à la réponse que j'ai donné ci-dessous. Personnellement, je n'aime pas le désordre de ma déclaration de classe avec le code que je considère cette partie de la (technique) de la documentation. Même argument pour la définition de la méthode dans le fichier d'en-tête, mais pas aussi mauvais. Ah et enfin: Vous avez vraiment besoin getters et setters? 🙂
  • Je suis d'accord, les accesseurs et mutateurs est rarement une partie de la bonne pratique.
  • en fait, c'est surtout les poseurs qui sont d'une mauvaise pratique.
  • Une lecture peut-être pas une mauvaise pratique (bien que je serais favorable à pousser au lieu de tirer), d'autre part l'obtention de l'état de l'objet est une violation de l'encapsulation, qui est dans la plupart des cas de mauvaise pratique.
  • exposer seulement un getter n'est pas une violation de l'encapsulation, il ne vous oblige à maintenir l'accès à la donnée dans le cadre de votre interface publique. Du point de vue du client, il n'y a aucun moyen de savoir si l'objet possède la valeur ou n'a accès (éventuellement par l'intermédiaire d'un autre objet). En outre, à la suite de votre argument, une extraction des informations à partir de l'objet est une violation de encapsultion.