Plusieurs fichiers sources [Résolu]

Signaler
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008
-
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
-
ReBonjour, dans mon projet, je dispose d'un fichier main.cpp qui contient la fonction main et les déclarations de classe.

Je pensais mettre, dans un fichier fonctions.cpp les fonctions associées aux classes du fichier main.cpp et aux variables qui sont dans la fonction main, mais cependant, le compilateur m'indique que ni ces variables ni cette classe n'ont été déclarés !!!

Comment faire ?

Merci de votre aide

14 réponses

Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
c'est ce qu'on apelle une variable globale :

http://c.developpez.com/faq/c/?page=types#TYPES_globales

pourra t'aider

@+;
satellite34

http://wxcod.free.fr/forum/
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
pour faire ca on utilise un fichier header : .h ou .hpp

pour bien faire, 1 header pour une classe, et 1 cpp par classe également

aprés #include "header.h";

@+;
satellite34

http://wxcod.free.fr/forum/
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

qu'entendez vous par "un cpp par classe". Et cela résoudra-t-il mes problèmes de variables ?
De plus, si dans ma fonction, je veux modifier des variables d'un objet de la classe, cela marchera-t-il ?
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
bon, de toutes facons ca peu que marcher vu que c'est comme  ca que l'on fait.

pour tes variables, aucun probleme.

en fait, pour chaque classe tu as  les declarations dans un .h et l'implémentation dans un .cpp.

enfin, vraiment c'est la base, regarde comment sont foutus les projets.

sinon, autre alternative mais couteuse en mal de tete, le fichier unique, mais la attention, quand tu arrive a 1500 lignes de codes, ben la moindre modif peu prendre du temps!

voila, sinon, vu la question, je te conseille d'aller lire un petit cours sur c/c++ sur developpez.com

@+;
satellite34

http://wxcod.free.fr/forum/
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
1500 ? facile, mais 10.000 ...
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
moi, je trouve qu'au dela de 1500 il faut absolument splitter, mai c une question de resolution et de taille d'ecran, lol, et de seuil de tolérance visuelle.

@+;
satellite34

http://wxcod.free.fr/forum/
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

ok merci je vais essayer
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

Bon ben certaines erreurs de compilation ont disparu, cependant, maintenant, j'ai l'erreur suivante :
multiple definition of `class1::fct1()' avec class1 définie dans header.h et qui contient :

class class1
{
       
       int nb;           
       int maxi;         
          
public:

       int fct1();        // La fonction
             
       
     
};

Quelqu'un saurait m'aider ?
Merci d'avance :)
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

tenez si ca peut vous aider, le code source complet :
Main.cpp :

#include
#include <cstdlib>
#include <windows.h>
#ifndef _HEADER_H_
#include "header.h"
#endif
using namespace std;

int n;
main(){
n=5;
obj1 a;
a.fct1();

}

FONCTIONS.CPP:
int obj1::fct1() {
/*.... du code ... */

}

HEADER.H:
class obj1{
private:
double cz;
int k;
public:
int fct1();

};
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Au debut de ton .h, avant tout code, met ceci :

#ifndef __HEADER_H__
#define __HEADER_H__

Et à la fin de ton code, tu met :

#endif

Ca permet que ton fichier .h ne soit inclus qu'une seule fois.
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

Merci, ca a l'air de marcher !
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

... ca avait l'air de marcher, cependant, pour que la variable n soit accessible partout (à partir des différents fichiers sources), comment faire ? En effet, j'avais essayé de mettre ca déclaration dans header.h, mais ca ne va pas
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Tu la déclare dans un fichier .cpp, et tu l'utilise dans les autres fichiers en faisant :

extern type nom_variable;
Messages postés
154
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
28 septembre 2008

ok merci