Que fait un astérisque (*) après le nom d'une variable signifie en opengl?
Je vois cette ligne dans une source que je suis étudiant, mais n'arrive pas à trouver tout ce qui est lié à "l'astérisque après la variable" ou "variable avant de l'astérisque". Ça veut dire quoi?
GameDrawer* gameDrawer;
GameDrawer est également utilisé comme un nom pour une fonction et classe.
- Ce n'est pas spécifiques à OpenGL; c'est basic, C/C++ de la syntaxe. Comment êtes-vous à l'aide de C++, au point de vous embêter avec OpenGL, sans avoir vu un pointeur avant?
- Je viens d'écrémage par C++ tutoriels. J'ai vu comment les pointeurs sont déclarées , mais seulement comme étant déclaré comme un type. int, char, int * GameDrawer;" etc etc. première fois à venir à travers un "pointeur sur une classe de" faire de la classe un valide "type".
- Depuis GLSL ne prend pas en charge les pointeurs ou la surcharge d'opérateur, si vous voyez ce dans OpenGL cela signifie multiplier
GameDrawer
pargameDrawer
. J'ai d'imaginer au lieu de cela, que c'est une certaine forme de code C et n'a rien à voir avec OpenGL ou de ses C-comme le langage (GLSL). - En C++, les classes sont des types. Une fois défini comme une classe,
GameDrawer
est à peu près équivalent àint
; vous pouvez avoir des variables de ce type, ont des pointeurs et des références à des instances d'elle, l'utiliser comme un type de paramètre dans les modèles, etc etc etc. Tout ce que vous ne pouvez pas faire est de (1) l'utiliser comme le type sous-jacent d'un enum, et (2)memcpy
ses instances autour de bon gré mal gré. (Vous pouvez en fait même le faire (2) dans certains cas, avec les soi-disant "trivialement copiable" types. Mais til vous comprenez ce que "trivialement copiable" les moyens, il est plus sûr de supposer que vous ne pouvez pas.)
Vous devez vous connecter pour publier un commentaire.
Qui serait le c++ notation pour un pointeur.
Source: http://www.cplusplus.com/doc/tutorial/classes/#pointers_to_classes
Ici,
*
est appelé opérateur de déréférencement. Ceci définit un pointeur; une variable qui stocke l'adresse d'une autre variable est appelée un pointeur. Les indicateurs point de la variable dont l'adresse qu'ils stockent.Vérifier ici pour plus d'info.
Dans votre exemple, un astérisque est utilisé pour indiquer la variable 'gameDrawer" est de type pointeur vers GameDrawer. Et il est également utilisé pour la déférence d'un pointeur pour obtenir la variable le pointeur est lié.
La syntaxe n'a pas de soins où les espaces sont, tant qu'il y en a un. Ces déclarations sont à déclarer un pointeur par le nom de gameDrawer qui est de type GameDrawer. En supposant que GameDrawer est une classe.
Juste un plus de commnet, j'ai rencontré ce post quand j'ai vu un code qui dispose d'un astérisque après une variable au lieu de la classe ou structure. Et dans ce cas, j'ai enfin comprendre que l'astérisque est ici un opérateur de multiplication.