La différence entre :: et . en C++
Réponse :
:: et . en C++ sont deux opérateurs différents utilisés pour accéder aux membres de classe et aux membres globaux.
Explication détaillée :
1. :: (opérateur de résolution de portée)
- est utilisé pour accéder aux membres globaux, y compris les variables, fonctions et types déclarés en dehors de la classe.
- Peut être utilisé pour résoudre les conflits de noms, par exemple lorsque le nom de la classe est le même que le nom de la variable globale.
- Syntaxe : : nom du membre ;
2 . (opérateur d'accès aux membres)
- est utilisé pour accéder aux membres de la classe, y compris les membres de données et les fonctions membres.
- Doit être utilisé pour accéder aux membres des instances de classe.
- Syntaxe : objet. nom du membre ;
Différence :
-
Portée d'accès : : accéder aux membres globaux, .
-
Conflit de nom : : Peut résoudre un conflit de nom. Impossible.
-
Dépendance d'instance : . Doit être utilisé pour accéder aux membres à partir d'instances de classe, :: n'est pas obligatoire.
Exemple :
Accès aux variables globales :
<code class="cpp">int global_var = 10;
cout << ::global_var; //输出 10</code>
Accès aux données de la classe membres :
<code class="cpp">class MyClass {
public:
int data_member = 20;
};
MyClass object;
cout << object.data_member; //输出 20</code>
Résoudre les conflits de noms :
<code class="cpp">class MyClass {
public:
static int global_var = 30;
};
int global_var = 40;
cout << ::MyClass::global_var; //输出 30</code>
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