Appeler les fonctions dans un .cpp [Résolu]

Signaler
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
Bonjour,

J'ai crée un programme donc la fonction main() est dans un .cpp. Maintenant, je veux appeler les autres fonctions dans un autre fichier .cpp. Que faire? Merci!

4 réponses

Messages postés
3840
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
121
1) Prend de bonnes habitudes, si tu fais du C, alors .h. Pour du C++ mieux vaut privilégier le .hh ou le .hpp (Voir la bibliothèque boost, par exemple).
2) Au vue de l'erreur, on dirait que tu n'as pas mis de garde dans ton fichier header.

#ifndef FICHIER_HH_
# define FICHIER_HH_

ta définition de classe, et/ou tes fonctions exportés.

#endif /* !FICHIER_HH_ */

Dans chaque header, tu devras avoir un directive qui porte un nom différente. On utilise généralement le nom du fichier.
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
suffit de déclarer les fonctions :

\\ file1.cpp

void Test(void)
{
    ...
}

\\ file2.cpp

void Test(void);

int main(void)
{
   Test();
}

En général, on met les prototypes des fonctions dans des headers (fichiers.h) pour ne pas avoir à recopier les déclarations : il suffit d'inclure le header dans tous les fichiers de code où on a besoin des fonctions :

\\ functions.h
void Test(void);

\\ file1.cpp
#include "functions.h"

void Test(void)
{
    ...
}

\\file2.cpp
#include "functions.h"

int main(void)
{
   Test();
}
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

J'ai fait comme ça mais il apparait des bogues similaires:

PilotNetdB.obj : error LNK2005: "int (__cdecl* NetdBClientSetStream)(int,int)" (?NetdBClientSetStream@@3P6AHHH@ZA) déjà défini(e) dans NetDBClient.obj

Que faire?
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

J'ai déjà résolu ces bogues. Mais d'autre façon, je ne rappel plus si c'est de même principe avec la tienne ou pas. Merci quand même.