extern fonction - C++ - Programmation
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)
Marsh Posté le 28-06-2003 à 20:06:02
Code :
|
Code :
|
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
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²