Déclaration variable externe [Résolu]

Messages postés
644
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
- - Dernière réponse : yvessimon
Messages postés
644
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
- 4 sept. 2008 à 08:56
Bonjour,

Après plusieurs recherche de débutant en c++
comment interpréter cette déclaration :

extern type_info const  &  typeid_basic;.

je comprends chacune des  déclarations    externe   et  const
par contre que signifie &  ? 
Ce qui doit me permettre de compre la signification de la déclaration 
extern type_info const  &  typeid_basic 

Je pose cette question car le compilateur dev-cpp me donne une erreur à cette ligne
 ... ..expected init-declarator before "const"

merci
Salutations
yvessimon
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
3
Merci
Voici l'exemple avec les espaces manquants :

// module1.h
int
  i  = 100;
int  const &  refint = i;

// module2.h
extern 
int  const & refint;   // valeur = 100

// si dans module1.h
i = 2000;

// alors dans module2.h
refint = 2000;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
Salut,

il s'agit d'une reference constante directe à un objet de type type_info.

Il faut obligatoirement un objet de ce type déclaré avant pour pouvoir affecter la réference.
Si la valeur de l'objet change, la valeur de la reference change aussi, même si elle est dans un autre module.
Par contre impossible d'affecter une autre réference car const.

// module1.h
int
i =100;
intconst& refint = i;

// module2.h
extern
intconst& refint;   // valeur = 100

// si dans module1.h
i = 2000;

// alors dans module2.h
refint = 2000;
Commenter la réponse de yann_lo_san
Messages postés
644
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
0
Merci
Bonjour,

Merci pour l'info c'est très clair
Il me reste à trouver ou est le 1er fichier de déclaration du module 1


yvessimon
Commenter la réponse de yvessimon