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,
A voir également:
- Compiler/exécuter un projet c++ : erreur où ?
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Compiler pdf - Guide
- Inno setup compiler - Télécharger - Édition & Programmation
- Executer un programme au demarrage - Guide
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 ?
Boss.cpp
Boss.h
Hero.cpp
Hero.h
#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 :
Mais c'est pareil ^^
#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 ^^