Maison >développement back-end >C++ >Quand et pourquoi utiliser l'opérateur de résolution de portée (::) sans portée en C ?

Quand et pourquoi utiliser l'opérateur de résolution de portée (::) sans portée en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 05:35:12722parcourir

When and Why Use the Scope Resolution Operator (::) Without a Scope in C  ?

Utilisation de l'opérateur de résolution de portée sans portée

En C , l'opérateur de résolution de portée (::) permet d'accéder aux membres globaux ou aux membres d'un espace de noms même lorsqu’aucune portée n’est présente. Lorsqu'il est utilisé sans portée, comme dans l'exemple ::foo(), il signifie une portée globale.

Objectif

L'opérateur de résolution de portée utilisé sans portée a le objectifs suivants :

  • Accès global aux membres : Il donne accès aux fonctions, variables et classes globales sans spécifier leur espace de noms ou nom de classe. Ceci est utile lorsque plusieurs fonctions ou variables portant le même nom existent dans différents espaces de noms ou classes et que vous devez accéder à l'espace global.
  • Résolution des conflits de noms : S'il existe une fonction ou une variable conflit de nom dans la portée actuelle, en utilisant :: garantira que le membre global est accessible au lieu du membre local.

Exemple

Considérez l'exemple suivant :

void bar(); // global function

class foo {
    void some_func() { ::bar(); } // calls global bar(), not class version
    void bar(); // class member
};

Dans cet exemple, si nous voulons appeler la fonction globale bar() depuis la fonction membre de la classe some_func(), nous devons utiliser ::bar() pour spécifier explicitement la fonction globale. portée. Sinon, il tenterait d'appeler le membre de la classe bar().

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!

Déclaration:
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