begin process at 2012 02 11 23:07:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

probleme sur une classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme sur une classe

samedi 27 avril 2002 à 21:02:45 | probleme sur une classe

NerOcrO

Voici mon code :
#include <iostream.h>
#include <string.h>
class Chanson //classe Chanson
{
public:
int Duree;
char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50];
public:
Chanson (int*, char*, char*, char*, char*); //Constructeur
~Chanson (void); //Destructeur
void Afficher ();
};

void main (void)
{
int Duree1;
char TypeDeFichier1[3], Auteur1[50], Titre1[50], Interprete1[50];
Chanson obj (Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);
obj.Afficher ();
}

void Chanson::Afficher (void)
{
cout << "Type De Fichier : " << TypeDeFichier << endl;
cout << "Duree : " << Duree << endl;
cout << "Auteur : " << Auteur << endl;
cout << "Titre : " << Titre << endl;
cout << "Interprete : " << Interprete << endl;
}

Chanson::Chanson (int* Duree1, char* TypeDeFichier1, char* Auteur1, char* Titre1, char* Interprete1)
{
Duree=*Duree1;
strcpy (TypeDeFichier, TypeDeFichier1);
strcpy (Auteur, Auteur1);
strcpy (Titre, Titre1);
strcpy (Interprete, Interprete1);
}

Chanson::~Chanson (void)
{
cout << "Objet detruit.";
}
J'ai une erreur au niveau de l'instanciation.
Aidez moi svp.
jeudi 2 mai 2002 à 00:16:15 | Re : probleme sur une classe

Blustuff

Ton constructeur utilise comme premier parametre un pointeur sur int, et toi, tu as passé un parametre du type int. Tu dois remplacer

Chanson obj (Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);

par

Chanson obj (&Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);

puisque ce parametre est un pointeur, tu dois envoyer l'adresse de Duree1 et non sa valeur. Par ailleur l'usage de pointeur n'est pas justifié ici. Ton constrtucteur ne modifie pas la valeur de Duree, tu n'a donc pas besoin de passer la variable par pointeur. Tu peux donc remplacer

Duree=*Duree1;

par

Duree=Duree1;

et changer le type du premier parametre

int*

par le type

int

Si ca ne marche pas, donne plus de précision dans la description de l'erreur. Il peut y avoir bcp d'erreur dans l'instanciation. (Au moins préciser, si c'est une erreur de compilation, de liason, ou une exeption lors de l'execution)


Blustuff.



-------------------------------
Réponse au message :
-------------------------------

Voici mon code :
#include <iostream.h>
#include <string.h>
class Chanson //classe Chanson
{
public:
int Duree;
char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50];
public:
Chanson (int*, char*, char*, char*, char*); //Constructeur
~Chanson (void); //Destructeur
void Afficher ();
};

void main (void)
{
int Duree1;
char TypeDeFichier1[3], Auteur1[50], Titre1[50], Interprete1[50];
Chanson obj (Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);
obj.Afficher ();
}

void Chanson::Afficher (void)
{
cout << "Type De Fichier : " << TypeDeFichier << endl;
cout << "Duree : " << Duree << endl;
cout << "Auteur : " << Auteur << endl;
cout << "Titre : " << Titre << endl;
cout << "Interprete : " << Interprete << endl;
}

Chanson::Chanson (int* Duree1, char* TypeDeFichier1, char* Auteur1, char* Titre1, char* Interprete1)
{
Duree=*Duree1;
strcpy (TypeDeFichier, TypeDeFichier1);
strcpy (Auteur, Auteur1);
strcpy (Titre, Titre1);
strcpy (Interprete, Interprete1);
}

Chanson::~Chanson (void)
{
cout << "Objet detruit.";
}
J'ai une erreur au niveau de l'instanciation.
Aidez moi svp.
jeudi 2 mai 2002 à 00:25:54 | Re : probleme sur une classe

NerOcrO

Put1 je te remercie, c'était exactement ça.

NerOcrO


-------------------------------
Réponse au message :
-------------------------------

Ton constructeur utilise comme premier parametre un pointeur sur int, et toi, tu as passé un parametre du type int. Tu dois remplacer

Chanson obj (Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);

par

Chanson obj (&Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);

puisque ce parametre est un pointeur, tu dois envoyer l'adresse de Duree1 et non sa valeur. Par ailleur l'usage de pointeur n'est pas justifié ici. Ton constrtucteur ne modifie pas la valeur de Duree, tu n'a donc pas besoin de passer la variable par pointeur. Tu peux donc remplacer

Duree=*Duree1;

par

Duree=Duree1;

et changer le type du premier parametre

int*

par le type

int

Si ca ne marche pas, donne plus de précision dans la description de l'erreur. Il peut y avoir bcp d'erreur dans l'instanciation. (Au moins préciser, si c'est une erreur de compilation, de liason, ou une exeption lors de l'execution)


Blustuff.



-------------------------------
Réponse au message :
-------------------------------

Voici mon code :
#include <iostream.h>
#include <string.h>
class Chanson //classe Chanson
{
public:
int Duree;
char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50];
public:
Chanson (int*, char*, char*, char*, char*); //Constructeur
~Chanson (void); //Destructeur
void Afficher ();
};

void main (void)
{
int Duree1;
char TypeDeFichier1[3], Auteur1[50], Titre1[50], Interprete1[50];
Chanson obj (Duree1, TypeDeFichier1, Auteur1, Titre1, Interprete1);
obj.Afficher ();
}

void Chanson::Afficher (void)
{
cout << "Type De Fichier : " << TypeDeFichier << endl;
cout << "Duree : " << Duree << endl;
cout << "Auteur : " << Auteur << endl;
cout << "Titre : " << Titre << endl;
cout << "Interprete : " << Interprete << endl;
}

Chanson::Chanson (int* Duree1, char* TypeDeFichier1, char* Auteur1, char* Titre1, char* Interprete1)
{
Duree=*Duree1;
strcpy (TypeDeFichier, TypeDeFichier1);
strcpy (Auteur, Auteur1);
strcpy (Titre, Titre1);
strcpy (Interprete, Interprete1);
}

Chanson::~Chanson (void)
{
cout << "Objet detruit.";
}
J'ai une erreur au niveau de l'instanciation.
Aidez moi svp.



Cette discussion est classée dans : void, char, cout, chanson, endl


Répondre à ce message

Sujets en rapport avec ce message

Fraction en C++ [ par nomadstorm ] Bonsoir j'ai travaller sur un prgramme qui fait des opérations sur une fraction mais il y a un défauts dans ce dernier que je trouve pas merci de m ai Plantage lors de l'exécution ! [ par mliuej ] Bonjour à tous, Voici une fonction simple qui est sensée enregistrer un objet "Visiteur" ainsi qu'un objet "BilletEntree", et les afficher tous les d determinant et inverse en c++ [ par nomadstorm ] Bonsoir tout le monde comment faire pour le déterminant et l'inverse sachant que j'ai fait le produit et la puissance # include # include using n Segfault [ par victorcoasne ] Bonjour, J'essaye d'éliminer un maximum toutes les erreurs de segfault pouvant intervenir dans mes classes et je butte sur un point. Pour comprendre Erreur de comparaison entre un caractère (string) et une case d'un tableau (const char*) [ par wizard512 ] Bonsoir, J'obtient une erreur lors de la comparaison entre un caractère et une case d'un tableau. <font color="#006400 un pti prob ... :s help [ par meksoft002 ] Bonjour, c'est ma première participation en vue que vous pourrez resoudre mon problème ..voila...je vouderais mettre en oeuvre un tableau d'objets "pe qu'en pensez vous?? besoin d'aide!! lol [ par nelly77 ] bonjour je voudrai créer un tableau avec une liste de produits ayant des attributs comme  leur nom, leur etat dans un stock, la duree de fabrication e n'arrive pas à utiliser ma fct affiche!! [ par nelly77 ] #includeusing namespace std;class CPersonne{protected:    char* nom;public:    CPersonne(char* name);    void setNom(char* name);    void affiche();}; Gets [ par Titiii25 ] Bonjour,Etant étudiant notre prof nous a demandé de créer un programme qui doit dire le plus grand mot d'une chaine de caractère saisie avec gets. Le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,870 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales