gdefrance
Messages postés7Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 1 juin 2005
-
24 juil. 2004 à 11:16
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
24 juil. 2004 à 17:53
Bonjour à tous, j'ai un problème avec une classe fille en C++, la classe mère chaine détient ses constructeurs et tout marche bien, mais avec la classe fille chaine_t dès que je veux l'initialiser avec un mot, il m'appelle d'abord le constructeur mère void et puis ensuite il m'appelle le constructeur mère (char *) mais la rien ne se passe.
Si quelqu'un pourrait élucider mon problème
Merci à tous.
//------------------------------------------------------------------------------
// Déclaration de la classe Mère chaine
//------------------------------------------------------------------------------
class chaine
{
// int longueur;
char *adr;
protected : int longueur;
public : chaine(); // Constructeur par défaut
chaine(char *); // Constructeur
chaine(chaine &); // Constructeur par recopie
~chaine(); // Destructeur
void operator=(chaine &);
int operator==(chaine);
chaine & operator+(chaine);
char & operator[](int);
void affiche();
};
//------------------------------------------------------------------------------
// Déclaration de la classe Fille Chaine
//------------------------------------------------------------------------------
class chaine_T:public chaine
{
int Type;
float Val;
public : chaine_T();
chaine_T(char *);
void affiche();
};
//------------------------------------------------------------------------------
// Déclaration des méthodes de la classe Mère chaine
//------------------------------------------------------------------------------
chaine::chaine(void)
{
// Construit un nouveau objet prédéfini
chaine::chaine(char *aide)
{
// construit un nouveau objet avec la chaine de caractère
// transmise
cout<<"***********"<<"\n";
// adr = new char[strlen(aide)];
// adr = NULL;
adr = aide;
longueur = strlen(aide);
cout<<"longueur = "<<longueur<<aide<<endl;
}
void chaine::affiche(void)
{
if (longueur != 0)
cout<<adr<<endl;
else
cout<<"La chaine est vide."<<endl;
}
//------------------------------------------------------------------------------
// Déclaration des méthodes de la classe Fille chaine
//------------------------------------------------------------------------------
chaine_T::chaine_T(void)
{
// Construit un nouveau objet prédéfini
//------------------------------------------------------------------------------
// Fonction principale
//------------------------------------------------------------------------------
void main()
{
// Déclaration des variables locales
chaine a("Bonjour");
a.affiche();
chaine b(a);
b.affiche();
chaine_T e("Salut");
e.affiche();
// Fin du programme attente d'une touche pour arrêter
gdefrance
Messages postés7Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 1 juin 2005 24 juil. 2004 à 12:27
j'ai un peu de mal à tout assimiler, je suis des cours par correspondance et s'est pas facile tout seul.
ne m'en vouler pas d'être de faire beaucoup d'erreur, je suis novice
Merci à tout ceux qui m'aide, je vais suivre vos conseil et tout recommencer.
Vous n’avez pas trouvé la réponse que vous recherchez ?