|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : probleme sur une classe [ Archives / Divers ] (NerOcrO)
Informations & options pour cette discussion
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é dans : void, char, cout, chanson, endl
Répondre à ce message
Sujets en rapport avec ce message
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
aide en c/c++ gestion classe [ par moussadjijunior ]
Bonjour à tous J'oses croire que vous allez tous bien et que vos familles ne manque de rien.Je viens aujourd'hui auprés de vous car j'ai u probleme av
chaine de caractere [ par superstarz ]
Bonjour, Je suis débutant en C++, et je seche sur un TP concernant les chaines de caractère.Les érreurs qui surviennent lors de la compilation sont le
probleme cpp class [ par leroiloup ]
ce programme ne m'affiche rient#include#include#includeusing namespace std;class Ahmed{ public: Ahmed(){}; virtual void a
porbleme facile cpp [ par leroiloup ]
ce programme ne m'affiche rient#include#include#includeusing namespace std;class Ahmed{ public: Ahmed(){}; virtual void a
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|