Tout d'abord, Bonjour Batman,
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