Une classe est un peu comme un espace de nom, donc, dans certains contextes, comme l'appel de méthode statique ou de définition de fonction membre, on utilise "::".
Historiquement, les namespaces sont une généralisation du concept de fragmentation des "espaces de noms" qu'offraient déjà les classes.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Une classe est un peu comme un espace de nom, donc, dans certains contextes, comme l'appel de méthode statique ou de définition de fonction membre, on utilise "::".
Historiquement, les namespaces sont une généralisation du concept de fragmentation des "espaces de noms" qu'offraient déjà les classes.
Généralement ".", c'est un peu un alias sur "this->".
Ta langue a fourché :D
Seira72 a écrit:
Quand est ce qu'on utilise quoi et pourquoi ? merci !
Les 3 permettent d'accéder à "quelque chose" qui se trouve dans "quelque chose". C'est leur seul point commun.
Les points importants a remarquer :
- c'est que :: s'utilise avec des identifiants (des espaces de noms, des classes, etc), alors que . et -> s'utilise avec des variables.
- . s'utilise avec des valeurs, -> s'utilise avec des pointeurs
class A {
public:
void foo();
};
A a;
A* p;
A::foo // ok, A est le nom d'une classe
A.foo // erreur
A->foo // erreur
a::foo // erreur
a.foo // ok, a est une valeur
a->foo // erreur
p::foo // erreur
p.foo // erreur
p->foo // ok, p est un pointeur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Discord NaN. Mon site.