Appeler les fonctions dans un .cpp

Résolu
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009 - 5 mai 2009 à 16:48
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009 - 7 mai 2009 à 16:23
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
7 mai 2009 à 06:27
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.
3
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 mai 2009 à 17:56
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();
}
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
6 mai 2009 à 10:37
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?
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
7 mai 2009 à 16:23
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.
0
Rejoignez-nous