C++ Probleme de Lien entre classes
Résolu/Fermé
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
-
27 mars 2008 à 11:02
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 mars 2008 à 14:08
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 mars 2008 à 14:08
A voir également:
- C++ Probleme de Lien entre classes
- Lien url - Guide
- Verifier un lien - Guide
- Créer un lien pour partager des photos - Guide
- Cliquez sur ce lien. en n'utilisant que le clavier, quel mot obtenez-vous ? ✓ - Forum souris / Touchpad
- Lien mega ✓ - Forum Webmastering
17 réponses
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 11:29
27 mars 2008 à 11:29
Bonjour,
Peux-tu montrer le fichier listemot.h s'il te plaît ?
(C'est un peu singulier de prendre un nombre réel pour renvoyer un nombre de mots...)
M.
Peux-tu montrer le fichier listemot.h s'il te plaît ?
(C'est un peu singulier de prendre un nombre réel pour renvoyer un nombre de mots...)
M.
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 12:47
27 mars 2008 à 12:47
Oui non, les prototypes sont clean.
Par contre je crois que je la tiens quand même, héhé, la vilaine. ^^
Je ne vois pas où est la définition de "positon" dans lireFichier. J'aurais tendance à dire que tu mettrais la fameuse instruction 'pouet' en plein milieu du code qu'il ne le verrait pas non plus. Le fichier semble ne pas être compilé.
M.
Par contre je crois que je la tiens quand même, héhé, la vilaine. ^^
Je ne vois pas où est la définition de "positon" dans lireFichier. J'aurais tendance à dire que tu mettrais la fameuse instruction 'pouet' en plein milieu du code qu'il ne le verrait pas non plus. Le fichier semble ne pas être compilé.
M.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 12:52
27 mars 2008 à 12:52
Sisi j'ai choisi de ne pas le mettre ici car car il n'influait pas dans la classe test...
Peut etre en mettant les variables nbmot et position en public je vais tester (beurrrrg mais bon... lol)
Peut etre en mettant les variables nbmot et position en public je vais tester (beurrrrg mais bon... lol)
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 12:58
27 mars 2008 à 12:58
Non ca ne marche pas !
le probleme se situe dans la classe Test mais je ne sais pas où et comment ?!
Moi "qui vient " du java putain c'est délicat comme langage en tout cas
le probleme se situe dans la classe Test mais je ne sais pas où et comment ?!
Moi "qui vient " du java putain c'est délicat comme langage en tout cas
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 13:07
27 mars 2008 à 13:07
As-tu testé le pouet ?
Y a-t-il un fichier .o ou .obj de produit pour ListeMot ?
Quel est le compilo ?
M.
Y a-t-il un fichier .o ou .obj de produit pour ListeMot ?
Quel est le compilo ?
M.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 13:15
27 mars 2008 à 13:15
pouet ?? oui il ya un "Liste.o" généré quand j'ai compilé puis j'ai compilé "test" sniff ca commence a...grrr
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 13:31
27 mars 2008 à 13:31
On oublie le pouet alors...
Je n'ai pas su ton compilo,
Il est fort probable que tu aies gcc
tu peux donc normalement compiler (seulement compiler) avec gcc -c test.cpp
(éventuellement avec gcc test.cpp liste.o si tu aimes griller les étapes)
ensuite seulement tu devrais pouvoir linker.
Sinon, bourinage: g++ liste.cpp test.cpp -o test.out
M.
PS:
Pas de panique, on améliorera les conditions de codage après.
Je n'ai pas su ton compilo,
Il est fort probable que tu aies gcc
tu peux donc normalement compiler (seulement compiler) avec gcc -c test.cpp
(éventuellement avec gcc test.cpp liste.o si tu aimes griller les étapes)
ensuite seulement tu devrais pouvoir linker.
Sinon, bourinage: g++ liste.cpp test.cpp -o test.out
M.
PS:
Pas de panique, on améliorera les conditions de codage après.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 15:57
27 mars 2008 à 15:57
Dsl Miam Miam...lol
J'utilise devcpp dans lequel je travaille depuis ma clé (coté pratique ^_^)
J'utilise devcpp dans lequel je travaille depuis ma clé (coté pratique ^_^)
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 16:42
27 mars 2008 à 16:42
Le code paraît tout ce qu'il y a de plus correct.
J'ai peut-être une autre idée. Si c'est la première fois que tu utilises Dev-cpp peut-être n'as-tu pas créé de projet pour y mettre tes fichiers sources ?
Sinon tu peux toujours tester une chose... Dev-cpp utilise le compilateur (et linker) gcc.
On peux tenter de linker directement avec gcc puisque les fichiers sont déjà compilés.
Dans un console: "g++ test.o liste.o -o test.exe"
M.
J'ai peut-être une autre idée. Si c'est la première fois que tu utilises Dev-cpp peut-être n'as-tu pas créé de projet pour y mettre tes fichiers sources ?
Sinon tu peux toujours tester une chose... Dev-cpp utilise le compilateur (et linker) gcc.
On peux tenter de linker directement avec gcc puisque les fichiers sont déjà compilés.
Dans un console: "g++ test.o liste.o -o test.exe"
M.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 16:49
27 mars 2008 à 16:49
Il n'y a pas de test.exe ?? et g++ n'est pas installé (en dur) dans les machines de cette école
je suis un peu dans le kaka !
je suis un peu dans le kaka !
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 17:10
27 mars 2008 à 17:10
Ce qui m'enerve le plus c'est que c'est une classe facile (voir banale ) a realiser et je me retrouve coincé par un truc de
lien entre classes cela me mets hors de moi pfff
lien entre classes cela me mets hors de moi pfff
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 17:20
27 mars 2008 à 17:20
-o test.exe est pour spécifier le nom de l'exécutable qui doit être généré à partir des .o
Je pensais que tu avais ton dev-cpp perso sur ta clef, non ? Il doit y avoir un gcc qui traîne quelque part. Ou au moins un compilateur quelconque.
Pour le fichier de projet c'est okay ?
M.
Je pensais que tu avais ton dev-cpp perso sur ta clef, non ? Il doit y avoir un gcc qui traîne quelque part. Ou au moins un compilateur quelconque.
Pour le fichier de projet c'est okay ?
M.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 17:23
27 mars 2008 à 17:23
exact dans "D:\Dev-Cpp\Packages" il ya gcc-g++.entry et gcc-core.entry lequel des 2?
Pour le fichier de projet c'est okay ? : j'ai pas compris
Pour le fichier de projet c'est okay ? : j'ai pas compris
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 17:46
27 mars 2008 à 17:46
Je m'attendais plus à un ...\bin\gcc.exe
J'avais oublié les packages de notre ami Dev-Cpp...
Il semblerait que certaines personnes ayant Dev-cpp ont un répertoire ...\mingw32\bin\ Il n'est pas forcément dans celui de Dev-cpp et cela dépend peut-être aussi de l'installation de Dev-Cpp. (Dans mes souvenirs il y a une version complète et une pour ceux qui ont minGW)
Pour le fichier de projet c'est juste pour s'assurer que tu es bien passé par la création d'un nouveau projet, que tu y as ajouter tous tes fichiers sources etc. Il doit y avoir un fichier .dev.
M.
J'avais oublié les packages de notre ami Dev-Cpp...
Il semblerait que certaines personnes ayant Dev-cpp ont un répertoire ...\mingw32\bin\ Il n'est pas forcément dans celui de Dev-cpp et cela dépend peut-être aussi de l'installation de Dev-Cpp. (Dans mes souvenirs il y a une version complète et une pour ceux qui ont minGW)
Pour le fichier de projet c'est juste pour s'assurer que tu es bien passé par la création d'un nouveau projet, que tu y as ajouter tous tes fichiers sources etc. Il doit y avoir un fichier .dev.
M.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 17:50
27 mars 2008 à 17:50
Je m'attendais plus à un ...\bin\gcc.exe
Exact il y est (un connaisseur...Up)
Pour le fichier de projet c'est juste pour s'assurer que tu es bien passé par la création d'un nouveau projet, que tu y as ajouter tous tes fichiers sources etc. Il doit y avoir un fichier .dev.
Peut etre c'est pour ca car je compilais les 2 .dev séparemment . Donc je vais creer un .dev avec tous les .h et .cpp necessaire ! je te tiens au courant
Exact il y est (un connaisseur...Up)
Pour le fichier de projet c'est juste pour s'assurer que tu es bien passé par la création d'un nouveau projet, que tu y as ajouter tous tes fichiers sources etc. Il doit y avoir un fichier .dev.
Peut etre c'est pour ca car je compilais les 2 .dev séparemment . Donc je vais creer un .dev avec tous les .h et .cpp necessaire ! je te tiens au courant
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 17:54
27 mars 2008 à 17:54
Deja ca compile sans probleme de link... suspens lol
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 18:09
27 mars 2008 à 18:09
Tout est ok (plus ou moins )
Le consol ne se lance pas ?? pkoi ? i
#include "Liste.h" #include "Test.h" int main(int argc, char *argv[]){ const char *filename = argv[1]; const char *filename2 = argv[2]; ifstream ifs(argv[1]); ifstream if2s(argv[2]); //Pour le test if(argc != 3){ if(argv[1]=="--test"){ Test t; cout<<t.show()<<endl; system("PAUSE"); return 0; } }// fin Test ...
Le consol ne se lance pas ?? pkoi ? i
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 18:18
27 mars 2008 à 18:18
Tu as tenté un debuggage ?
Il faut mettre un point d'arrêt au début de ton main (avec F9 ?) et lancer le debug. En avançant 'pas à pas' tu devrais voir pourquoi il y a un soucis.
Je pense qu'elle se lance mais que le programme se termine trop vite pour la voir. en mettant un system("PAUSE"); avant la fin du main tu devrais la voir quelques soient les tests.
Sur ce, je rentre à ma maison ! ☺
M.
Il faut mettre un point d'arrêt au début de ton main (avec F9 ?) et lancer le debug. En avançant 'pas à pas' tu devrais voir pourquoi il y a un soucis.
Je pense qu'elle se lance mais que le programme se termine trop vite pour la voir. en mettant un system("PAUSE"); avant la fin du main tu devrais la voir quelques soient les tests.
Sur ce, je rentre à ma maison ! ☺
M.
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 18:23
27 mars 2008 à 18:23
Bonne soirée encore merci !
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
27 mars 2008 à 19:13
27 mars 2008 à 19:13
Ayé j'ai reussi il fallait que je "caste" le string "test" avant de les comparer comme ceci :
Ouf enfin Merci bcp
string s = "--test"; const char *Str2 = s.c_str ();
Ouf enfin Merci bcp
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
27 mars 2008 à 19:36
27 mars 2008 à 19:36
Tiens oui...
if(argv[1]=="--test")
et
if( strcmp( argv[1], "--test" ) == 0 )
Le premier compare les pointeurs, le deuxième compare les chaînes de caractères.
char s1[] = "bonjour";
char s2[] = "bonjour";
if ( s1 == s2 ) -> faux (ou dépend des options de compilation)
if( strcmp( s1, s2 ) == 0 ) -> toujours vrai pour tous les compilateurs ou systèmes d'exploitation.
strcmp est une fonction standard du C. Déclarée dans string.h
M.
if(argv[1]=="--test")
et
if( strcmp( argv[1], "--test" ) == 0 )
Le premier compare les pointeurs, le deuxième compare les chaînes de caractères.
char s1[] = "bonjour";
char s2[] = "bonjour";
if ( s1 == s2 ) -> faux (ou dépend des options de compilation)
if( strcmp( s1, s2 ) == 0 ) -> toujours vrai pour tous les compilateurs ou systèmes d'exploitation.
strcmp est une fonction standard du C. Déclarée dans string.h
M.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
28 mars 2008 à 14:08
28 mars 2008 à 14:08
Salut.
C'est une bonne chose que d'utiliser les std::string plutôt que les const char*, ça évite les erreurs de pointeur, surtout venant du Java ;)
Je te conseil pour tes problème de compilation, avant de revenir à DevCpp de faire un peu de compilation en mode console, histoire de comprendre ce qui se passe.
Si un symbole n'est pas trouvé, dans la plupart des cas, c'est que tu ne lui a pas donnée.
C'est une bonne chose que d'utiliser les std::string plutôt que les const char*, ça évite les erreurs de pointeur, surtout venant du Java ;)
Je te conseil pour tes problème de compilation, avant de revenir à DevCpp de faire un peu de compilation en mode console, histoire de comprendre ce qui se passe.
Si un symbole n'est pas trouvé, dans la plupart des cas, c'est que tu ne lui a pas donnée.
27 mars 2008 à 11:39
en type int (n1/n2) ca ne marcherait pas (pas a chaque fois)!
27 mars 2008 à 12:00
13/4 = 3
6/4 = 1
4/6 = 0
4/13 = 0
Pour rester logique tout de même je mettrais des unsigned int ou un size_t en valeur de retour et je casterais pour le calcul du taux.
Enfin le problème c'est le link, donc j'attends de voir le header.
M.
27 mars 2008 à 12:04