begin process at 2010 02 09 21:06:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

GUI

 > 

compile à plusieurs fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

compile à plusieurs fichiers

samedi 3 janvier 2009 à 23:15:14 | compile à plusieurs fichiers

ntrvdonett

Bonsoir,

Au risque de faire rire, j'ai un problème de compilation en mettant une class dans un fichier à part, je rame depuis deux heure pour rien, et j'ai pas trouver ma solution sur le site, pourtant....

j'ai deux fichiers C++ sous linux :

test_main.cpp :

#include <iostream>

using namespace std;

extern class bonjour;

int main (){
    bonjour b("bonjour"); 
}

test_class.cpp :

#include <iostream>

using namespace std;

class bonjour{
public:
    bonjour(string text){ // constructeur
        cout << text << "\n";
    }
};

mon Makefile :


test: test_main.o test_class.o
    g++ -o test test_main.o test_class.o

test_main.o: test_main.cpp
    g++ -o test_main.o -c test_main.cpp

test_class.o: test_class.cpp
    g++ -o test_class.o -c test_class.cpp

g++ me répond :
*test_main.cpp:5: error: ISO C++ forbids declaration of 'bonjour' with no type

Quelqu'un peut-il m'aider ?

Merci

FAB (On ne peut pas aller au delà des choix qu'on ne comprend pas)
samedi 3 janvier 2009 à 23:40:43 | Re : compile à plusieurs fichiers

ghuysmans99

Membre Club
Réponse acceptée !
main.cpp:

#include <iostream>
using namespace std;

#include "test_class.h"

int main () {
    bonjour b("bonjour");
}
___________________________________________________________________
test_class.h:

#include <iostream>
using namespace std;

class bonjour{
public:
    bonjour(string text);
};
___________________________________________________________________
test_class.cpp:

#include "test_class.h"

bonjour::bonjour(string text) {
    cout << text << "\n";
}
http://img404.imageshack.us/img404/7166/signaturegf4.gif
samedi 3 janvier 2009 à 23:41:26 | Re : compile à plusieurs fichiers

ed73

Réponse acceptée !
Bonsoir,

Il faut que les prototypages de toutes les méthodes de bonjour soient connu de main.

Il te faut donc 2 fichiers , test_class.h et test class.cpp :

test_class.h

class bonjour{
public:
    bonjour(string text);
};

test_class.cpp

bonjour:bonjour(string text)
{
cout << text << "\n";
}

et dans test_main.cpp, remplace extern class bonjour par #include "test_class.h"

Tu pourrais aussi mettre tout le code de bonjour dans test_class.h.




dimanche 4 janvier 2009 à 12:47:40 | Re : compile à plusieurs fichiers

ntrvdonett

Merci pour vos réponses, ça marche mieux comme ça, je vais pouvoir transposer sur mon projet !!

FAB (On ne peut pas aller au delà des choix qu'on ne comprend pas)
dimanche 4 janvier 2009 à 12:55:55 | Re : compile à plusieurs fichiers

ntrvdonett

Juste encore une petite question, comment présenter seulement la partie public de la classe dans test_class.h et déclarer ailleurs la partie privée ? De manière à ce que l'utilisateur futur de la classe ne voit que se qu'il peut utiliser ?

Merci

FAB (On ne peut pas aller au delà des choix qu'on ne comprend pas)
dimanche 4 janvier 2009 à 13:59:09 | Re : compile à plusieurs fichiers

ghuysmans99

Membre Club
Peut-être comme ça : en créant un deuxième fichier .h, utilisé uniquement par le .cpp de la classe.

#include <iostream>
using namespace std;

class bonjour{
private:
    void FonctionSecrete(int a, short z);
};
http://img404.imageshack.us/img404/7166/signaturegf4.gif


Cette discussion est classée dans : class, test, fichiers, cpp, main


Répondre à ce message

Sujets en rapport avec ce message

pb avec les fichiers cpp [ par Saros ] Bon là c'est la première fois que ça me le fait.Je bosse sous VC++6.J'ai un projet avec trois fichiers :estack.hetmain.cppRpn_Alg.cppJ'ai déclaré et d partage de variable entre plusieurs fichiers [ par Spiffou ] salut à tous,j'ai un ptit pb sur vc6:j'ai un prog comportant plusieurs fichiers:main.cpp // code du mainfonction.cpp // code des fonc Include "je_comprend_pas_grand_chose.h" [ par neodelphi ] Bonjour tout le monde... C'est la première fois que je post un message ici, arf g le trac lol Bon je viend de me mettre au C++ pour me prog un jeu en probleme avec string [ par slyfer07 ] Bonjour tout le monde,je débute en C++ et je suis en train de réaliser mon premier projet (j'utilise DevC++). Celui-ci comprend mon main.cpp, ainsi qu Plusieurs fichiers sources [ par nisaloncaje ] 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 fi Template C++ [ par luhtor ] Je suis confronté à un petit problème. Quelqu'un saurait-il pourquoi le code suivant ne compile pas ? (j'utilise VC express, mais c'est pas important) SVP de l'aide pour la source "distance parcourrue par la souris" [ par banane_rose ] bonjour,voilà je vous présente mon problème :dans cette source y'a les fichiers :2 fichiers header (Resource.h ,<font color=" code de cryptage,débutant [ par RoseX ] voila j'ai un probleme, je créé un logiciel ayant pour but de crypter un message et de le décrypter a demande. je vais dabors vous exposer mon code en Probleme avec winsock [ par ratala ] Bonjour, J'éssaye de travailler avec les winsocks mais à chaque fois que je compile, j'ai ce message d'erreur :.objs\main.o:main.cpp:(.text+0x649): un bug? code::block effacement automatique de main.cpp [ par kadolodai2 ] Bonjours, J'ai un souci sur code::block:Lorsque je crée une projet wxWidget (new/project/wxWidget project) tout est ok!lorsque je le compile et lance


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales