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
Libérer: 2024-12-05 05:35:12
original
724 Les gens l'ont consulté

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
};
Copier après la connexion

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!

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