Maison >développement back-end >C++ >Que fait l'opérateur de résolution de portée (::) sans portée ?

Que fait l'opérateur de résolution de portée (::) sans portée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-06 22:16:13442parcourir

What Does the Scope Resolution Operator (::) Do Without a Scope?

L'opérateur de résolution de portée dans un vide

L'opérateur de résolution de portée (::) est généralement utilisé pour accéder aux membres d'une portée spécifique. Cependant, il peut également être utilisé sans scope, comme dans l'exemple suivant :

::foo();

Objectif de l'opérateur de résolution de scope sans scope

Lorsqu'il est utilisé sans portée, l'opérateur de résolution de portée fait référence à la portée globale. Cela signifie qu'il accède à des symboles qui ne sont définis dans aucune classe ou espace de noms spécifique.

Exemple d'utilisation de l'opérateur de résolution de portée sans portée

Considérez le code suivant :

void bar();    // this is a global function

class foo {
    void some_func() { ::bar(); }    // this function is calling the global bar() and not the class version
    void bar();                      // this is a class member
};

Dans l'exemple ci-dessus, il y a deux fonctions bar() : l'une est une fonction globale et l'autre est une fonction membre de classe. Si vous appelez bar() depuis la fonction membre de la classe some_func(), cela appellera la fonction membre de la classe. Cependant, en utilisant ::bar(), vous pouvez accéder explicitement à la fonction globale bar().

En résumé, l'opérateur de résolution de portée sans portée fait référence à la portée globale, vous permettant d'accéder aux symboles globaux depuis n’importe quel contexte. Ceci est particulièrement utile lorsque vous devez lever l'ambiguïté entre plusieurs symboles portant le même nom ou lorsque vous devez accéder à des symboles globaux à partir d'une fonction membre de classe.

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