extern fonction

extern fonction - C++ - Programmation

Marsh Posté le 28-06-2003 à 18:56:34    

salut
 
j'ai déclaré une fonction dans mon main.cpp et je voudrais l'appeler dans un autre fichier cpp.
Si j'inclue main.cpp dans ce fichier ca créé des erreurs de liens. Donc je voulais la déclarer en fonction extern :
 
dans le main (déclaration)
 
extern void toto()
...
 
dans mon fichier (appel)
 
extern toto();
 
mais ca marche pas. Si quelqu'un peut m'aider.
 
merci
 
bi²

Reply

Marsh Posté le 28-06-2003 à 18:56:34   

Reply

Marsh Posté le 28-06-2003 à 18:59:26    

extern c'est pour les variables, c'est pas le problème. il te faut quelque chose pour exporter la déclaration de ta fonction. soi tu recopies le proto à la main, soi tu fais un .h(pp)

Reply

Marsh Posté le 28-06-2003 à 20:06:02    

Code :
  1. // Main.cpp
  2. void MaFonction()
  3. {
  4. };


 

Code :
  1. // Fichier.cpp
  2. void MaFonction():
  3. void UneAutreFonction()
  4. {
  5.    MaFonction();
  6. }

Reply

Marsh Posté le 29-06-2003 à 03:43:03    

Par defaut toutes les fonctions ont un nom de portée extern, si tu veux l'eviter il faut les definir comme static. (aucun rapport mais c'est malheureusement comme ca).
 
Pour utiliser une fonction en C++, tu n'as pas besoin de la definition complete un simple prototype en avant de l'utilisation suffit (sans mot clé extern..). En C, tu n'as meme pas besoin du prototype en avant mais c'est deconseillé de ne pas le mettre (declaration implicite, il va choisir le type de retour int par defaut).
 
Pour ce qui est de l'utilisation des membres de classe, tu as la besoin de la definition complete (sans le code bien entendu) de ta classe au prealable. Il n'est pas possible de changer la portee du nom en C++ comme avec les fonctions globales. Le seul  moyen de cacher les methodes d'une classe aux autres modules c'est d'utiliser les namespace anonymes.
 
A+
LeGreg

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed