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)

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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.