Portée du nom de classe

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Classes - Index

La portée du nom de classe est locale. Certaines conditions spéciales sont requises lorsque le nom de classe apparaît plusieurs fois dans la même portée. La portée du nom de classe commence avec la déclaration et se termine avec le bloc qui la contient. Un nom de classe cache une classe, un objet, un énumérateur ou une fonction ayant le même nom dans la portée. Si un nom de classe est déclaré dans une portée contenant la déclaration d'un objet, d'une fonction ou d'un énumérateur de même nom, il n'est possible de faire référence à la classe qu'en utilisant le spécificateur de type composé. Ceci signifie que le mot clé de classe class, struct ou union doit être utilisé avec le nom de classe. Par exemple,

struct S { ... };
int S(struct S *Sptr);
void func(void) {
   S t;         // ILLEGAL declaration: no class key and function S in scope
   struct S s;  // OK: elaborated with class key
   S(&s);       // OK: this is a function call
}

C++ admet aussi une déclaration de classe incomplète :

class X;  // no members, yet!

Les déclarations incomplètes permettent certaines références aux noms de classe X (généralement des références à des pointeurs sur des objets classe) avant que les classes ne soient totalement définies. Voir Déclarations des membres d'une structure pour de plus amples informations. Naturellement, vous devez faire une déclaration complète avec les membres pour pouvoir déclarer et utiliser les objets de cette classe.

Voir aussi la syntaxe des déclarations incomplètes des classes VCL.

Voir aussi