Bonjour a tous,

Voici mon problème :
Dans ma bibliothèque "sylib.h":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#...
class menu {
public: 
static void entete(void);
static void menu1(void);
}
class tube {
public:
void montrer_tube(void);
private:
//données tube
}
Dans "menu.cpp":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
inline void menu::entete()
{ // mon entete }
void menu::menu1()
{
menu::entete(); //ne pose aucun problème
//contenu menu1
...
}
Dans "tube.cpp":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void tube::montrer_tube()
{
menu::entete(); //Error : Unresolved external...
//affichage des careactéristiques du tube
...
}
J'ai défini chaque fonctions dans exactement un fichiers source (tube.cpp pour la classe tube et menu.cpp pour la classe
menu) (cf faq c++).
J'ai essayé de sortir entete de la classe menu ( void entete(void); ) et de définir normalement dans menu.cpp :
void entete void()
{...}
mais j'ai toujours la meme erreur:
*)
Dans "tube.cpp":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void tube::montrer_tube()
{
entete(); //Error : Unresolved external...
//affichage des careactéristiques du tube
...
}
J'ai lu : "Attention, les fonctions static sont des fonctions dont la portée n'est que dans le fichiers où elles se trouvent." et en effet je ne peux utiliser menu::entete(); que dans menu.cpp où elle est définie.
Mais ça devrait être différent pour la simple fonction entete(); ( cf *) ).
Je ne peux pas non plus appeller dans l'ordre
tube mon_tube
menu::entete(); //ou entete();
mon_tube.montrer_tube();
dans mon programme principal.

Je voudrais afficher l'entete avant d'afficher le tube, mais je n'y arrive pas et je tourne en rond.
Il doit y avoir une astuce simple, pourriez vous me dire comment faire svp?