Je me demandais s'il y a des avantages à utiliser une fonction membre statique quand il y a un équivalent non statique. Cela entraînera-t-il une exécution plus rapide (à cause de ne pas avoir à se préoccuper de toutes les variables membres), ou peut-être moins d'utilisation de la mémoire (à cause de ne pas être inclus dans toutes les instances)?Avantage d'utiliser une fonction membre statique au lieu d'une fonction membre non statique équivalente?
Fondamentalement, la fonction que je regarde est une fonction d'utilité pour faire tourner un tableau d'entiers représentant des couleurs de pixel un nombre arbitraire de degrés autour d'un point central arbitraire. Il est placé dans ma classe de base de Bullet abstraite, puisque seules les balles l'utiliseront et je ne voulais pas l'overhead de l'appeler dans une classe d'utilité. C'est un peu trop long et utilisé dans chaque classe de balle dérivée, ce qui n'est probablement pas une bonne idée pour l'intégrer. Comment suggéreriez-vous que je définisse cette fonction? En tant que fonction membre statique de Bullet, d'une fonction membre non statique de Bullet, ou peut-être pas en tant que membre de Bullet mais définie en dehors de la classe dans Bullet.h? Quels sont les avantages et les inconvénients de chacun?
ouais, je ne suis pas vraiment sûr comment fonctionne C++. Je viens d'un arrière-plan Flash et ActionScript a des frais généraux horribles dans les endroits les plus étranges - les fonctions statiques dans les classes utilitaires sont résolues à l'exécution, alors comme Mathsin chaque fois qu'il est utilisé, le joueur doit trouver la classe Math à travers la hashtable. fonction de péché.Heureux d'entendre que C++ au moins a plus de bon sens .. – jonathanasdf
@Zan: les fonctions membres statiques n'ont pas de pointeur 'this'. –
En effet vous avez raison. J'ai lu la ligne à laquelle je répondais: "Il n'y a absolument aucune différence de performance entre les fonctions membres et les fonctions libres." ce qui n'est pas vraiment ce qu'il dit. Ma faute. –