57 votes

Que sont l'ID / nom qualifié et l'ID / nom non qualifié?

Je me demandais si quelqu'un pouvait expliquer ces termes depuis que je les rencontre dans de nombreux endroits. Je connais une théorie de base à leur sujet mais je ne sais pas ce que je sais est bien ou mal.

Alors, quelqu'un peut-il expliquer ces termes?

53voto

al-Acme Points 11571

Un nom qualifié est celui qui a une sorte d'indication de l'endroit où il appartient, par exemple, une classe cahier des charges, spécification d'espace de noms, etc. Un nom non qualifié est celui qui n'est pas qualifié.

Lire Jacques McNellis de réponse ici:

Ce qui est imbriquée nom du rédacteur de devis?

Donnée:

struct  A {
    struct B {
        void F();
    };
};
  • A est un unqualified-id.
  • ::A est une personne qualifiée, id , mais n'a pas imbriquée-nom-rédacteur de devis.
  • A::B est un qualifié-id et A:: est un nested-nom-rédacteur de devis.
  • ::A::B est un qualifié-id et A:: est un nested-nom-rédacteur de devis.
  • A::B::F est un qualifié-id et les deux B:: et A::B:: sont imbriqués-nom-de prescripteurs.
  • ::A::B::F est un qualifié-id et les deux B:: et A::B:: sont imbriqués-nom-de prescripteurs.

16voto

Alok Save Points 115848

Un nom qualifié est celui qui spécifie un champ d'application.
Considérons l'exemple de programme suivant, les références à cout et endl sont qualifiés de noms:

#include <iostream>

int main()  
{
   std::cout<<"Hello world!"<<std::endl;
   return 0;
}

Notez que l'utilisation de l' cout et endl a commencé avec std::. Ces rendre les noms Qualifiés.

Si nous avons apporté de cout et endl en portée par un à l'aide de la déclaration ou de la directive*(comme using namespace std;), et utilisé seulement cout et endl seulement par eux-mêmes , ils ont été qualifiés de noms, parce qu'ils manquent de l' std::.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X