Bonjour tout le monde,
J'ai un programme sur lequel je suis bloqué depuis hier soir.
J'ai en fait deux erreurs dans la même fonction :
error C2661: 'CVoiture::CVoiture' : no overloaded function takes 2 parameters
et
error C2661: 'CVoiture::CVoiture' : no overloaded function takes 2 parameters
La méthode Ajouter prend un seul paramètre qui est un modele de voiture, modele veut dire un tout qui fait une voiture:
bool CTabVoitures::Ajouter(const CVoiture& Modele)
Je pense que cette fonction reçoit le model via le constructeur par copie que voici :
CVoiture(const CVoiture& Source);
Je vous remercie d'avance pour votre so precious.
beegees
PS: voici le code des deux fonctions qui pour moi posent problème
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #include "chaine.h"
class Vehicule3
{
public:
Vehicule3();
~Vehicule3();
short NombreDePlace;
bool Nom(const char* UnNom); //modificateur du nom
bool EstValide() const;
private:
CChaine m_Nom;
CChaine m_Immatriculation;
};
class CVoiture : public Vehicule3
{
public:
CVoiture();
CVoiture(const CVoiture& Source);
~CVoiture();
bool EstValide() const;
private:
double m_VTM; //Volume transportable de marchandise
};
class CTabVoitures
{
public:
CTabVoitures();
~CTabVoitures();
bool Ajouter(const CVoiture& Modele);
long Indice(const char* Nom) const;
private:
long m_Nombre;
CVoiture** m_Tableau;
};
class CLeTout
{
public:
CLeTout();
~CLeTout();
bool Charger(const char* NomFichier);
private:
private:
static bool FctnTraiterLigne(const CChargeurFichierTexte& CC, void* Contexte);
bool TraiterLigne(const CChargeurFichierTexte& CC);
private:
CTabVoitures m_TV; //Tableau de voitures
}; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| #include <BasicConsole.h>
#include "vehicule3.h"
#include "chaine.h"
FctnTraiterLigne(const CChargeurFichierTexte& CC, void* Contexte);
Vehicule3::Vehicule3()
:NombreDePlace(0)
{
}
Vehicule3::~Vehicule3()
{
}
CVoiture::CVoiture()
:m_VTM(0.0)
{
}
CVoiture::~CVoiture()
{
}
CTabVoitures::CTabVoitures()
:m_Nombre(0),m_Tableau(NULL)
{
}
CTabVoitures::~CTabVoitures()
{
}
CLeTout::CLeTout()
{
}
CLeTout::~CLeTout()
{
}
bool CLeTout::Charger(const char* NomFichier)
{
CChargeurFichierTexte Chargeur;
return Chargeur.Charger(NomFichier,'\t',CLeTout::FctnTraiterLigne,this);
}
bool CLeTout::FctnTraiterLigne(const CChargeurFichierTexte& CC, void* Contexte)
{
return ((CLeTout*)Contexte)->TraiterLigne(CC);
}
bool CLeTout::TraiterLigne(const CChargeurFichierTexte& CC)
{
if (strlen(CC.Champs(0)) == 1) switch (CC.Champs(0)[0])
{
case 'R':
if (CC.NombreChamps() == 4) m_TV.Ajouter(CVoiture(CC.Champs(1),CC.Champs(2)),CC.Champs(3),CC.Champs(4));
break;
}
return true;
}
bool CTabVoitures::Ajouter(const CVoiture& Modele)
{
if (!Modele.EstValide()) return false;
//if (Indice(Modele.Nom()) >= 0) return true;
CVoiture* AAjouter = new CVoiture(Modele);
if (AAjouter == NULL) return false;
void* Nouveau = realloc(m_Tableau,(m_Nombre+1)*sizeof(CVoiture*));
if (Nouveau == NULL)
{
delete AAjouter;
return false;
}
m_Tableau = (CVoiture**)Nouveau;
m_Tableau[m_Nombre] = AAjouter;
m_Nombre++;
return true;
}
bool CVoiture::EstValide() const
{
return (Vehicule3::EstValide()) && (m_VTM > 0);
}
bool Vehicule3::EstValide() const
{
return !m_Nom.EstVide();
} |
Partager