Compiler/exécuter un projet c++ : erreur où ?

Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   -  
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, en essayant de compiler/exécuter un projet c++ (j'utilises Code::Blocks) voici ce que j'obtiens :
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:

8 réponses

daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
 
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 ?
0
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   65
 
Oui, le même projet. Désires tu voir leurs fichiers ?
0
daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
 
vas-y balance, car les lignes d'erreur spécifie que les fonctions n'existent pas
0
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   65
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
 
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
0
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   65
 
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 ^^
0
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   65
 
Alors svp ?
0
Snip714 Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   65
 
up svp
0