Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/09/2013, à 21:43

kboo

c++ compilation... simple..

bonjour,
je rame pour un truc tout simple que j'arrive pas à compiler... je comprend pas car c'est bidon !!

Mere.h:

#ifndef MERE_H_
#define MERE_H_

class Mere
{
  int variable;

  public:
    Mere();
    ~Mere();
    int getVar();
    void setVar(int var);
};
#endif

Mere.cpp:

#include "Mere.h"

Mere::Mere()
{
  variable = 0;
}

int Mere::getVar()
{
 return variable;
}

void Mere::setVar(int var)
{
  variable = var;
}

et

main.cpp:

#include <iostream>
#include "Mere.h"

int main (void)
{
  std::cout << "cool" << std::endl;
  Mere a;

  a.setVar(10);
  std::cout << a.getVar() << std::endl;

  return 0;
}

Pour compiler je fais:

g++ main.cpp

et ça donne:

main.cpp:(.text+0x36): undefined reference to `Mere::Mere()'
main.cpp:(.text+0x4a): undefined reference to `Mere::setVar(int)'
main.cpp:(.text+0x56): undefined reference to `Mere::getVar()'
main.cpp:(.text+0x87): undefined reference to `Mere::~Mere()'
main.cpp:(.text+0x99): undefined reference to `Mere::~Mere()'
collect2: error: ld returned 1 exit status

et quand je compile comme ça:

g++ main.cpp Mere.cpp

ça donne:

Mere.cpp:3:12: error: definition of implicitly-declared ‘Mere::Mere()’

Mais pourquoi? que dois-je faire? c'est pourtant si simple.. :-((((
merci bcp d'avance

Dernière modification par kboo (Le 16/09/2013, à 21:46)

Hors ligne

#2 Le 16/09/2013, à 22:10

Compte supprimé

Re : c++ compilation... simple..

Bonsoir,

Kboo a écrit :

quand je compile comme ça:

g++ main.cpp Mere.cpp

C'est juste.

Tu as juste oublié de créer la méthode de destruction dans "Mere.cpp" que tu as déclaré dans "Mere.h" :

Mere::~Mere(){}

Dernière modification par Cirius1987 (Le 16/09/2013, à 22:29)

#3 Le 17/09/2013, à 10:53

Braun

Re : c++ compilation... simple..

Eh oui, l'informatique ce n'est pas comme la politique, les promesses ne suffisent pas. smile
Même une fonction qui ne fait rien doit être déclarée et définie.

Hors ligne