Compiler/exécuter un projet c++ : erreur où ?
Snip714
Messages postés
249
Statut
Membre
-
Snip714 Messages postés 249 Statut Membre -
Snip714 Messages postés 249 Statut Membre -
Bonjour, en essayant de compiler/exécuter un projet c++ (j'utilises Code::Blocks) voici ce que j'obtiens :
Et voici main.cpp :
PS : Si vous souhaitez voir d'autres fichiers demandez moi !
Merci infiniment d'avance,
Compiling: C:\Users\Valter\Desktop\Prince c++\main.cpp Linking console executable: C:\Users\Valter\Desktop\Prince c++\main.exe C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x215): undefined reference to `Boss::Boss(std::string, std::string, int, int, int, int)' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x3dc): undefined reference to `Hero::Hero(std::string, std::string, int, int, int, int, int)' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x4f7): undefined reference to `Active::attack(Active&)' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x509): undefined reference to `Active::attack(Active&)' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x51b): undefined reference to `Active::attack(Active&)' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x526): undefined reference to `Hero::show_max_life() const' C:\Users\Valter\Desktop\Prince c++\main.o:main.cpp:(.text+0x535): undefined reference to `Active::life_back(int)' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 0 seconds) 7 errors, 0 warnings
Et voici main.cpp :
#include <iostream>
#include <string>
#include "Active.h"
#include "Boss.h"
#include "Hero.h"
using namespace std;
int main()
{
Boss Klompa("Klompa", "le Terrible", 370, 160, 130, 25);
Hero Valter("Valter", "the Moonstone", 90, 90, 31, 27, 40);
Valter.attack(Klompa);
Valter.attack(Klompa);
Klompa.attack(Valter);
Valter.life_back(Valter.show_max_life());
return 0;
}
PS : Si vous souhaitez voir d'autres fichiers demandez moi !
Merci infiniment d'avance,
Configuration: Windows Vista Firefox 2.0.0.14
8 réponses
-
il me semble que ton boss.cpp et ton hero.cpp ne sont pas compilés en meme temps que tu compiles ton main, sont-ils dans le meme projet ?
-
-
vas-y balance, car les lignes d'erreur spécifie que les fonctions n'existent pas
-
Boss.cpp
#include "Boss.h" using namespace std; Boss::Boss() : Active() { } Boss::Boss(string name, string slogan, int life, int offense, int defense, int speed) : Active(name, slogan, life, offense, defense, speed) { } void Boss::how_finish() { // A implémenter } void Boss::die_finish() { // A implémenter }
Boss.h#ifndef DEF_BOSS #define DEF_BOSS #include <iostream> #include <string> #include "Active.h" class Boss : public Active { public: Boss(); Boss(std::string name, std::string slogan, int life, int offense, int defense, int speed); void how_finish(); void die_finish(); }; #endif
Hero.cpp#include "Hero.h" using namespace std; Hero::Hero() : Active() { } Hero::Hero(string name, string slogan, int max_life, int life, int offense, int defense, int speed) : Active(name, slogan, life, offense, defense, speed) { } int Hero::show_max_life() const { return this->m_life; }
Hero.h#ifndef DEF_HERO #define DEF_HERO #include <iostream> #include <string> #include "Active.h" class Hero : public Active { public: Hero(); Hero(std::string name, std::string slogan, int max_life, int life, int offense, int defense, int speed); int show_max_life() const; private: int m_max_life; }; #endif -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
pour la classe hero tu oublies d'initialiser le membre m_max_life, modifie tes constructeurs et réessaie de compiler et dans showmaxlife tu appelle un membre inexistant, compile d'abord tes fichiers de classes et ensuite ton projet
-
Ben... J'ai changé Hero.cpp en :
#include "Hero.h" using namespace std; Hero::Hero() : Active() { } Hero::Hero(string name, string slogan, int max_life, int life, int offense, int defense, int speed) : Active(name, slogan, life, offense, defense, speed), m_max_life(max_life) { } int Hero::show_max_life() const { return this->m_life; }
Mais c'est pareil ^^ -
-