Accueil > Forum > > > > probleme avec constructeur surchargé
probleme avec constructeur surchargé
mardi 3 avril 2007 à 20:23:17 |
probleme avec constructeur surchargé

dr971
|
Bonjour je programme un simulateur de course auto en c++ et j'ai un gro prob avec mes classes. en fait j'ai 2 classes :
//classe voiture : #ifndef VOITURE_H #define VOITURE_H
#include "Obstacle.h" /* * No description */ class Voiture { public:
...
// class constructor Voiture(); // class destructor ~Voiture();
private:
Obstacle m_obstacleEnCours; Obstacle m_Ligne_droite(1 , "Ligne droite" , 0);
};
#endif // VOITURE_H
Une classe Obstacles :
#ifndef OBSTACLE_H #define OBSTACLE_H
/* * No description */ class Obstacle { public:
// surcharge constructeur Obstacle(int iden ,std::string nom , int effet); // class constructor Obstacle(); // class destructor ~Obstacle();
private:
//Attributs std::string m_nom_obstacle; int m_identifiant; int m_effet;
};
#endif // OBSTACLE_H
Dans obstacle.cpp j'ai : #include <string> #include "Obstacle.h" // class's header file
using namespace std;
// class constructor Obstacle::Obstacle() : m_identifiant(0) , m_effet(0) , m_nom_obstacle("obstacle_par_defaut") {
}
// surcharge constructeur Obstacle::Obstacle(int iden ,string nom , int effet) : m_identifiant(iden) , m_nom_obstacle(nom) , m_effet(effet) { } // class destructor Obstacle::~Obstacle() { }
Mon probleme est que lorsque je défini ma variable m_obstacleEnCours avec le constructeur simple mon prog l'accepte et compil mais lorsque ke je défini Obstacle m_Ligne_droite(1 , "Ligne droite" , 0) il ne compil pas. Je ne vois pas mon erreur.
Pourriez vous m'aider svp? merci d'avance.
|
|
mardi 3 avril 2007 à 21:13:28 |
Re : probleme avec constructeur surchargé

luhtor
|
Ton compilo te donne forcément un message d'erreur. Sans lui, on pourra pas t'aider.
|
|
mardi 3 avril 2007 à 21:42:17 |
Re : probleme avec constructeur surchargé

dr971
|
Voila la reponse ke mon donne le compilateur :
Compilateur: Default compiler Building Makefile: "C:\Documents and Settings\Propriétaire\Bureau\tp c++ V3\Makefile.win" Exécution de make... make.exe -f "C:\Documents and Settings\Propriétaire\Bureau\tp c++ V3\Makefile.win" all g++.exe -c voiture.cpp -o voiture.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"
In file included from voiture.cpp:5: Voiture.h:61: error: expected `;' before '(' token
make.exe: *** [voiture.o] Error 1
Exécution terminée
Je pense k'il a vraiment un prob avec ma variable Obstacle m_Ligne_droite(1 , "Ligne droite" , 0); mais je sais pas pourquoi
|
|
mardi 3 avril 2007 à 22:48:57 |
Re : probleme avec constructeur surchargé

yann_lo_san
|
Tu ne peux pas instancier directement un objet dans sa déclaration !
class Voiture { public:
// .ctor Voiture() { m_pLigne_droite = new Obstacle(1 , "Ligne droite" , 0); }
// OU //Voiture(int i, string s, int j) //{ // m_pLigne_droite = new Obstacle(i , s , j); //}
//.dtor ~Voiture() { if( m_pLigne_droite ) delete m_pLigne_droite; }
private:
Obstacle m_obstacleEnCours; // appelle .ctor defaut Obstacle*m_pLigne_droite; // non initialisé };
|
|
mercredi 4 avril 2007 à 00:00:42 |
Re : probleme avec constructeur surchargé

luhtor
|
Pourquoi utiliser un pointeur ? Pour risquer des fuites ?
La meme version sans pointeur: class Voiture { public:
// .ctor Voiture(): m_ligne_droite(1, "Ligne droite", 0) { }
// OU //Voiture(int i, string s, int j) //{ // m_pLigne_droite = new Obstacle(i , s , j); //}
//.dtor ~Voiture() { if( m_pLigne_droite ) delete m_pLigne_droite; }
private:
Obstacle m_obstacleEnCours; // appelle .ctor defaut Obstacle m_ligne_droite; // non initialisé };
|
|
mercredi 4 avril 2007 à 00:01:24 |
Re : probleme avec constructeur surchargé

luhtor
|
Bien sur, faut enlever le "delete m_pLigne_droite", j'ai oublié.
|
|
mercredi 4 avril 2007 à 15:07:02 |
Re : probleme avec constructeur surchargé

yann_lo_san
|
J'utilise des ptrs pour l'agrégation d'objets, car s'il y en a beaucoup, trop de pression sur la pile. Mais ta solution sera effectivement mieux compris par l'intéressé.
(pas de risque de fuite quant le destructeur est implémenté tout de suite)
|
|
mercredi 4 avril 2007 à 15:09:18 |
Re : probleme avec constructeur surchargé

yann_lo_san
|
Sinon tu peux passer sur VB et tu n'aura plus de problème de pointeur...
|
|
mercredi 4 avril 2007 à 16:53:38 |
Re : probleme avec constructeur surchargé

luhtor
|
Mais il y a des chances pour qu'un object de classe Voiture soit deja un pointeur, auquel cas, je vois pas l'intéret du pointeur, puisqu'on ne travaillera pas sur la pile. (Ou éclaire moi si je me trompe) :)
Pour les fuites, ya pas que le pb du destructeur, mais des éventuels fonctions de recopies, et euh perso, j'ai jamais fais une classe d'une traite :)
|
|
Cette discussion est classée dans : int, class, effet, voiture, obstacle
Répondre à ce message
Sujets en rapport avec ce message
les class tjs le class... [ par JediMaster ]
bon ben chuis enfin arriver a faire un tableau dans une classe et chuis tres content mais j'ai un autre pb je veux faire un tableau d'objet que j'init
Pb de class [ par SfyLer ]
Imaginons :class teste{public:void fonction();void fonction2();};int teste::fonction() {int a = 1;return 0;}int teste::fonction2() {//ici j'aimerais r
Liste chainée d'objet en C et le tri [ par fab30 ]
Apres beaucoup d'heures passé à essayer de trier une liste simplement chainé sur un élément de la structure qui compose la liste, et après avoir essuy
pb error C2011 par pitié aidé moi [ par neonmix ]
Voici mon prog:c'est un garage ki possède des voitures, ces voitures peuvent être "de course" ou "de série" (classe mere voiture, classe fille voiture
::WinMain [ par anarchysniper ]
Comme ceux qui suivent régulièrement le forum où s'échoue lamentablement sous formes de pitoyables suppliques mes tentatives d'aligner deux instructio
Creation de class en C++ [ par js1000 ]
Bonjour a tous !Je suis novice en C++ et je suis en train d'apprende les bases. J'ai donc une question a vous posez :Je veux ecrire une classe Matrice
Class et fenetre [ par abdoulax ]
Bonjour, Je voudrai créer une class qui contient toutes les méthodes correspondant à l'affichage de fenêtre. Le but étant de passé des variables entr
constructeur herité implicite [ par Guillemouze ]
salut a tous, j'ai une question toute bete : est il possible d'appeler implicitement un constructeur d'une class mere?j'ai 3 niveaux de classes; et je
Problème d'héritage multiple [ par Aquarian ]
Bonjour, Voici un morceau de code sur lequel j'ai un problème, en fait il se compile bien sous Visual Studio .NET 2003 ou sous Dev-cpp, mais il ne fai
multi heritage [ par foxz ]
Bonjour,d'une maniere general.class strm{ // base stream virtual int w(void*,int)=0; // write virtual int r(void*,int)=0; //read};class fil:virtual pu
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|