CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

(c++)Probleme constructeur

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 05:25:37

Bonjour, un probleme vien de ce posé a moi, j´ai crée une classe dans un header, avec son constructeur jusque la pas de probleme, mais quand j´essaye de crée un objet grace au constructeur le compilateur me lance un petit:

multiple definition of ´Bidulle::Bidulle()´

j´ai vérifié plusieur fois le code et ne trouve pas comment cel est arrivé

Kaoron
Kaoron
Niveau 9
28 juin 2007 à 06:54:17

Tu as retiré la définition de classe du source cpp? parce qu´il ne sert plus à rien là bas si tu l´as définie dans un header que tu inclus.

Fais une recherche sur le forum, il y a un topic "J´aide les gens en C/C++".

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 10:29:16

Tu instancies la classe dans le .h ? (a ne pas faire ! car plusieurs .cpp peuvent inclure le meme .h)

Quand tu définis une classe, tu fais :
class truc
{

}

pas de soucis.

Par contre, dans un .h, évite absolument :

truc maclasse; // instanciation.
int a; // instanciation

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 13:23:02

Dans le header, il ya que la définition de la classe, tout se qui agi avec est dans un fichier .cpp, j´ai bien vérifié et seul un fichier l´inclut

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 13:24:18

protege ton header d´inclusion multiple :

  1. ifndef _NOMFICHIER_H // premiere ligne
  2. define _NOMFICHIER_H

...

  1. endif // derniere ligne

Si ça ne marche pas, wall ton code sur rafb.net

dnob700
dnob700
Niveau 10
28 juin 2007 à 13:32:13

il faut déclarer inline les fonctions membre de la classe si tu les définit dans un header, si j´ai bonne mémoire.

Sinon, il faut mettre le code de la clase dans un .cpp et non pas dans le .h

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 13:37:33

Voila le code qui ne marche aparament pas:

http://rafb.net/p/s0EBRC49.html

godrik
godrik
Niveau 30
28 juin 2007 à 13:41:37

il faut lire les messages d´erreur...
vie_(100), for_(5), def_(5)
et
private:

int vie_;
int frc_;
int def_;

tu as for_ et frc_

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 13:45:03

Godrik a raison, attention aux fautes de frappe.

perso, je n´emploie quasiment jamais cette notation de définir une variable avant le body de la méthode. Une méthode plus conventionnelle aurait peut etre donné une erreur plus explicite :

Personnage::Personnage()
{
vie_ = 100;
frc_ = 5;
def = 5;
}

godrik
godrik
Niveau 30
28 juin 2007 à 13:46:28

fvirtman, c´est surtout pratique pour eviter de créer un objet par défault et de l´assigner apres, ce qui pourrait etre couteux.
Je n´aime pas non plus trop l´ecriture, parcequ´elle ne permet pas d´initialiser les tableaux, tu peux créer le tableau, mais pas le remplir.

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 13:46:51

Désolé j´ai fait une faute en recopient ^^ c´est frc_(5) qui est utilisé dans le fichier et pas for_(5)

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 13:48:18

Tu include bien le .h, pas le .cpp hein ?
(ne jamais inclure un cpp)

sinon, ton couple .h .cpp a l´air bon, et hermétique, normalement, tu peux include le .h n´importe ou sans multiples définitions !

godrik
godrik
Niveau 30
28 juin 2007 à 13:50:02

rah...
ne recopie pas, copie/colle, ca evite ce genre d´erreur!

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 13:54:18

Sa y ai l´ereur est résolu, j´ai bel et bien inclus un .cpp (dans le fichier main)

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 13:55:25

raaaha !! !!! JAMAIS inclure un .cpp

Sale !! ! Sale !! ! Sale !! !
Pire qu´un "extern void fonc()"

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 13:57:01

Désolé je ne suis qui pauvre débutant proi au ereur mortel pour ceux qui nous regarde :malade:

Fvirtman
Fvirtman
Niveau 10
28 juin 2007 à 14:00:37

:rire: :rire2:

C´est les erreurs qui forgent :-)

LGV
LGV
Niveau 28
28 juin 2007 à 14:26:30

(l´inclusion de .cpp , ou n´importe quel code au sens large, est pratique pour du "single compilation unit", decoupage de templates, etc.)

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 14:29:52

J´évite de recrée un post pour cela:

Voila j´ai un probleme je n´arrive pas a trouver dans ma petite tete comment faire pour inclure l´arme sur le perso
http://rafb.net/p/EAcC0p61.html

sachent que le dgt_ doit etre egal a atk_+frc_

Je ne trouve pas comment arriver a ´donner´ l´arme au perso je suis sur c´est tout c** mais je ne voi pas comment faire

sir-dark-link
sir-dark-link
Niveau 6
28 juin 2007 à 14:51:19

En essayent de le faire je suis tomber sur une belle ereur(arg je vis me tuer)

ifndef :Not found in current context

Voila mais maintenant pourquoi -_-

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware