Maison > développement back-end > C++ > le corps du texte

Comment déclarer correctement plusieurs pointeurs vers le même objet en C ?

Patricia Arquette
Libérer: 2024-10-26 01:59:27
original
700 Les gens l'ont consulté

How to Correctly Declare Multiple Pointers to the Same Object in C  ?

Clarification des déclarations de pointeurs d'objets multiples

En C , lors de la déclaration de plusieurs pointeurs sur une seule ligne, il est essentiel d'en saisir les nuances. Dans l'exemple fourni, la question se pose concernant les différences entre deux extraits de code apparemment similaires.

Exemple 1 :

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, re_sprite_body, re_sprite_eyes;</code>
Copier après la connexion

Cette déclaration vise à créer trois pointeurs vers sf::Objets Sprite. Cependant, cela crée faussement un pointeur et deux objets. L'astérisque () qui suit immédiatement sf::Sprite s'applique uniquement à la première variable (re_sprite_hair) et non aux suivantes.

Pour rectifier cela, la déclaration doit être révisée comme suit :

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, *re_sprite_body, *re_sprite_eyes;</code>
Copier après la connexion

Ici, chaque variable se voit explicitement attribuer un astérisque, créant trois pointeurs distincts.

Exemple 2 :

<code class="cpp">public:
    Entity()
    {
        re_sprite_eyes = new sf::Sprite();
        re_sprite_hair = new sf::Sprite();
        re_sprite_body = new sf::Sprite();
    }

private:
    sf::Sprite* re_sprite_hair;
    sf::Sprite* re_sprite_body;
    sf::Sprite* re_sprite_eyes;</code>
Copier après la connexion

Cette version déclare trois pointeurs correctement selon l'usage prévu. Les pointeurs sont correctement initialisés dans le constructeur à l'aide de l'opérateur 'new'.

Conclusion :

Lors de la déclaration de plusieurs pointeurs sur une seule ligne, il est crucial de placer l'astérisque adjacent à chaque variable pour éviter toute confusion et assurer une gestion précise de la mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!