Bonjour -- >Constructeur en c++
Fermé
abdel
-
15 nov. 2003 à 13:13
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 6 déc. 2006 à 07:08
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 6 déc. 2006 à 07:08
A voir également:
- Bonjour -- >Constructeur en c++
- Adresse mac constructeur - Guide
- Constructeur par copie java ✓ - Forum Java
- Garantie constructeur lenovo - Forum Matériel informatique
- Correspondance adresse mac constructeur - Forum Réseau
- Super constructeur java ✓ - Forum Java
5 réponses
batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
16 nov. 2003 à 17:15
16 nov. 2003 à 17:15
slt,
Ta question n'est pas assez précise pour un post dans un forum, que ne comprends tu pas en ce qui concerne les constructeurs ?
Cherche dans les supports de cours de CCM.
En gros, un constructeur c'est la première fonction associée à ton objet qui est appelée à son instanciation, c donc là que tu fais les allocations et les initialisations nécessaires, etc..
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Ta question n'est pas assez précise pour un post dans un forum, que ne comprends tu pas en ce qui concerne les constructeurs ?
Cherche dans les supports de cours de CCM.
En gros, un constructeur c'est la première fonction associée à ton objet qui est appelée à son instanciation, c donc là que tu fais les allocations et les initialisations nécessaires, etc..
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
5 déc. 2006 à 17:15
5 déc. 2006 à 17:15
Salut.
Ba oui, evidemment... Le problème ne viens pas vraiment du constructeur, mais de l'appel avec les paramètres par défaut !
si tu fait :
CPersonnes a().
Le compilo doit prendre quel constructeur ?
CPersonnes();
ou
CPersonnes(char *n=0, char *p=0, char *d=0);
Donc pour résoudre ton problème, il suffit de faire :
CPersonnes(char *n, char *p=0, char *d=0);
Moralité: toujours croire ce que le compilateur dit (surtout qd le message est aussi clair).
Ba oui, evidemment... Le problème ne viens pas vraiment du constructeur, mais de l'appel avec les paramètres par défaut !
si tu fait :
CPersonnes a().
Le compilo doit prendre quel constructeur ?
CPersonnes();
ou
CPersonnes(char *n=0, char *p=0, char *d=0);
Donc pour résoudre ton problème, il suffit de faire :
CPersonnes(char *n, char *p=0, char *d=0);
Moralité: toujours croire ce que le compilateur dit (surtout qd le message est aussi clair).
Goblins
Messages postés
13
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
4 juillet 2007
1
5 déc. 2006 à 18:57
5 déc. 2006 à 18:57
Merci.
Bonjour,
Je ne suis pas expert du C++ mais j'ai trouvé un truc pour bien
comprendre les constructeurs/destructeurs.
En cour de développement, n'hésitez pas à placer des [ cout ]
à l'intérieur du/des constructeurs.
ex:
Lupin
Je ne suis pas expert du C++ mais j'ai trouvé un truc pour bien
comprendre les constructeurs/destructeurs.
En cour de développement, n'hésitez pas à placer des [ cout ]
à l'intérieur du/des constructeurs.
ex:
cout >> "Constructeur numero 1 en action" >> endl; cout >> "Destructeur numero1 en action" >> endl;
Lupin
Goblins
Messages postés
13
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
4 juillet 2007
1
5 déc. 2006 à 22:51
5 déc. 2006 à 22:51
Oui, en effet il faut de fait inverser les <<, mais je ne pouvait m'aider d'un quelconque affichage parce que le compilateur refusait de linker -> pas d'exécutable...
Qu'a cela ne tienne, la technique est très pratique notemment pour les destructeur et les fonctions virtuel...
Qu'a cela ne tienne, la technique est très pratique notemment pour les destructeur et les fonctions virtuel...
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 522
5 déc. 2006 à 20:18
5 déc. 2006 à 20:18
Il faut inverser les petites flêches avec cout....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
désolé pour l'erreur, mais comme je disais je ne suis pas expert et il y aura maintenant 3 ans que j'ai suivi ma formation en c++, et je ne pratique que sporadiquement.
Lupin
désolé pour l'erreur, mais comme je disais je ne suis pas expert et il y aura maintenant 3 ans que j'ai suivi ma formation en c++, et je ne pratique que sporadiquement.
Lupin
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 522
6 déc. 2006 à 07:08
6 déc. 2006 à 07:08
Salut,
Je pense que je peux pardonner à quelqu'un une erreur de syntaxe en C++ ;-)
Je pense que je peux pardonner à quelqu'un une erreur de syntaxe en C++ ;-)
5 déc. 2006 à 13:34
j'ai une question un peux plus,précise au sujet des constructeur, dans les classes dérivée...(j'espère sincèrement que tu as une réponse...) J'ai une classe mère et une classe qui en hérite et tout ce passe à merveille, à coté de ça, j'ai une autre classe mère et la classe fille qui en hérite et mon constructeur par défaut dans ma classe fille n'est pas accepté par le compilateur, or, j'ai suivi exactelent le même protocle que pour la première.... Le compilateur me dit qu'il y un appel ambigus et qu'il y a définition de plusieurs constructeurs par défaut dans ma classe mère...
j'en suis déjà à plusieurs heures (voir jour) de recherche et un peux d'aide ne me ferrait pas de mal je pense... C'est probablement une bêtise mais ça bloque...
Je joint,
1. les messages d'erreur du compilateur
2. le code (.h) de mes deux classes.
1.Erreur compilateur:
warning C4520: 'CPersonnes' : multiple default constructors specified
error C2668: 'CPersonnes::CPersonnes' : ambiguous call to overloaded function
2.Code:
#ifndef _CPERSONNES_H_
#define _CPERSONNES_H_
#define VISUAL
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef VISUAL
#include <iostream.h>
#endif
const int l_nom=60;
const int l_pre=60;
const int l_nai=11;
#define NUM unsigned int
class CPersonnes
{
friend ostream& operator<<(ostream& s, const CPersonnes& P);
protected:
char *nom;
char *prenom;
char *naissance;
public:
CPersonnes();
CPersonnes(char *n=0, char *p=0, char *d=0);
CPersonnes(const CPersonnes& P);
virtual ~CPersonnes();
//get set
char* getNom() const {return nom;}
char* getPrenom() const {return prenom;}
char* getNaissance() const {return naissance;}
void setNom(const char *n);
void setPrenom(const char *p);
void setNaissance(const char *d);
//methode classe
virtual void affiche() const;
};
class CMembrePersonnel:public CPersonnes
{
//friend ostream& operator<<()
private:
NUM numperso;
public:
CMembrePersonnel():CPersonnes()
{
setNumperso(0);
}
CMembrePersonnel(char *n, char *p, char *d, NUM nu):CPersonnes(n, p, d)
{
setNumperso(nu);
}
CMembrePersonnel( const CPersonnes& P, const CMembrePersonnel& M): CPersonnes(P)
{
setNumperso(M.getNumperso());
}
//virtual~CMembrePersonnel(void){;}
//get set
getNumperso() const {return numperso;}
setNumperso(const NUM n){numperso=n;}
//methode classe
void affiche() const;
};
#endif