Si j'ai une classe C++ qui contient une variable membre statique, la méthode accesseur de cette variable doit elle aussi être statique? En outre, y a-t-il des problèmes qui pourraient survenir si j'inscris cette méthode?Variable de membre statique et méthode
Répondre
n'a pas besoin d'être pour être statique, mais à moins de faire quelque chose de spécifique à une instance particulière de la classe, il n'y a pas vraiment de raison de ne pas le rendre statique de toute façon.
Cela ne devrait en aucun cas affecter l'inlining.
L'objectif d'écrire une méthode d'accès est de cacher l'implémentation de certaines propriétés de la classe à des utilisateurs externes. Ce que vous voulez cacher et ce que vous ne voulez pas cacher est quelque chose que vous pouvez décider. Une décision comme celle-ci ne peut pas être faite mécaniquement, comme dans "puisque le membre de données est statique, l'accesseur doit aussi être statique". C'est une approche désespérément erronée.
Encore une fois, le point d'écrire l'accesseur est de découpler l'utilisateur de toutes (ou certaines des) connaissances concernant le membre de données sous-jacent. Le membre de données peut même ne pas exister physiquement. L'utilisateur n'a pas besoin de savoir s'il existe physiquement ou non. Le membre de données lui-même pourrait exister physiquement aujourd'hui et disparaître demain. L'utilisateur n'est pas censé s'en préoccuper. C'est ce que vous obtenez en forçant les utilisateurs à utiliser un accesseur. Donc, dans votre cas, en rendant l'accesseur statique, vous déclarez et exposez automatiquement le fait que la propriété correspondante est spécifique à la classe entière, et non à un objet particulier de la classe. Notez, encore une fois, que l'état statique du membre de données est à côté du point ici: personne ne saura ou ne se souciera jamais s'il y a un membre de données physique derrière cet accesseur. En rendant l'accesseur non statique, vous déclarez et exposez automatiquement le fait que la propriété peut être spécifique à un objet particulier de la classe
C'est ce qui devrait guider votre décision. Vous ne fournissez pas suffisamment de détails sur la propriété en question, donc nous ne pouvons pas vous aider ici à décider.
- 1. Variable statique/membre
- 2. variable statique par rapport au membre
- 3. variable membre statique d'une classe sous-classée
- 4. variable ne statique "cette" méthode statique dans
- 5. PHP print_r et membre statique
- 6. Ajout d'une variable de membre statique à une classe tierce
- 7. Variable globale dans une méthode statique
- 8. C++ modifier la variable membre privé de la fonction membre statique
- 9. comment sérialiser et désérialiser le membre statique
- 10. F # membre statique
- 11. Variables de membre statique du débogueur Xcode
- 12. initialisation de variable statique java
- 13. Comment/devrait être caché la variable et la fonction de membre statique C++?
- 14. Initialisation de variable locale statique et d'objet local statique
- 15. variable membre et la fonction membre ont le même nom
- 16. Comment initialiser un membre statique
- 17. Référence indéfinie au membre statique
- 18. C++ modèle membre statique instantiation
- 19. C#: Inherited/interface membre statique?
- 20. C++: Masquer le membre statique de base
- 21. méthode statique et sécurité de thread
- 22. Classe de membre statique - déclarez la classe private et le membre de classe package-private?
- 23. "Le modificateur de membre 'statique' doit précéder le type de membre et le nom" Erreur C#
- 24. Méthode statique du servlet
- 25. WPF - DataTemplate liant à un membre statique
- 26. Session Membre variable?
- 27. propre syntaxe pour Changer Membre statique Comportement
- 28. Avantage d'utiliser une fonction membre statique au lieu d'une fonction membre non statique équivalente?
- 29. référence à une variable statique d'une méthode statique de la même classe
- 30. Objectif C: initialisation d'une variable statique avec appel de méthode statique