IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème avec les conctructeurs de copie


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Problème avec les conctructeurs de copie
    Bonjour,
    J'ai un problème avec les constructeurs de copie.
    Je dois créer une classe date qui sera utilisé par une classe DVD (pour stocker la date de prêt et la date d'arrivée dans la vidéothèque).
    J'ai créé le code suivant qui fonctionne très bien pour stocker une date, mais je ne comprend pas comment on peut stocker n dates (n est un entier saisie par l'utilisateur).
    Si j'ai bien compris on peut faire se genre de choses avec un opérateur de copie. Avec quelques recherches j'ai réussi a copier la date "x" dans la date "q" avec le code suivant Mais je ne vois toujours pas comment je pourrais utiliser cela pour sauvegarder plusieurs dates... Comment faire ?
    Merci d'avance,
    Tom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 <iostream>
    using namespace std;
     
    class date {
    	private :
    	int jour;
    	int mois;
    	int annee;
    	static int ID;
    	public :
    	void affiche();
    	void Get(int &j, int &m, int &a);
    	void Set(int j, int m,int a);
                 void Saisie();
                 date (date const &d);
    	date();
    	~date();
    };
     
    void date::affiche()
    {
    	cout<<jour<<"/"<<mois<<"/"<<annee<<endl;
    }
     
    void date::Get(int &j, int &m, int &a)//Permet de récupérer les dates stockées en mémoire
    {
         j=jour;
         m=mois;
         a=annee;
    }
    void date::Saisie() //Saisie de nouvelles dates
    {
        int j,m,a;
        cout<<"Veuillez saisir le jour.";
        cin>>j;
        cout<<"Veuillez saisir le mois.";
        cin>>m;
        cout<<"Veuillez saisir l'année.";
        cin>>a;
        Set(j,m,a);
    }
     
    void date::Set(int j, int m, int a)
    {
    	jour=j;
    	mois=m;
    	annee=a;
    }
    date::date ()
    {	
    }
    date::date (const date &d)
    {
    	jour=d.jour;
    	mois=d.mois;
    	annee=d.annee;
     
    }
    date::~date()
    {  
    }
     
     
    int main()
    {
       date x;
       x.Saisie();
       x.affiche();
     
    }

  2. #2
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    un objet date correspond a UNE date
    si tu veux en stocker plusieurs il faut utiliser un tableau, vecteur ou autre quelque part, non ?

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Le constructeur de copie automatiquement généré correspond très bien.
    Pas besoin de le faire toi-même (d'autant plus que ta version est moins bien)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Oui mais...
    Merci de vos réponses, en fait la classe DVD contient un tableau de pointeurs contenant l'adresse des dates correspondant à chaque DVD. Je sais que ça sert pas à grand chose d'avoir créé une classe pour les dates mais c'est un sujet de TD donc c'est imposé par le sujet...
    Ce qui me pose problème c'est d'associer un pointeur à chaque élément...

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Pourquoi ne pas faire un tableau de dates plutôt qu'un tableau de pointeurs ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je suis totalement d'accord avec toi ça sert à rien mais c'est imposé par le sujet... Moi non plus je comprend pas trop la logique des sujets de fac des fois... Je suppose que ce serait trop simple.
    Donc pas de solution évidente ? En tout cas merci pour vos réponses je pensais que s'étais moi qui passais à côté d'un truc évident, je vais me remettre à chercher une astuce.

  7. #7
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par tom6304
    Ce qui me pose problème c'est d'associer un pointeur à chaque élément...
    mais aussi de comprendre qu'un objet date correspond a une date, et qui si tu veux en stocker plusieurs, il faut creer le tableau au dehors (tu peux aussi imaginer un tableau statique membre de la classe date... mais bon)

    pour le tableau de pointeurs, vala :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    int main()
    {
       int nbDates;
       printf("entrez le nombre de dates\n");
       scanf("%d", &nbDates);
       // creation du tableau de pointeurs
       date ** dates = new date*[nbDates];
       // creation des objets date
       for (int i = 0; i < nbDates; i++)
          dates[i] = new date();
       // saisie
       for (int i = 0; i < nbDates; i++) {
          printf("saisie de la date %d\n", i+1);
          dates[i]->Saisie();
       }
       // affichage
       for (int i = 0; i < nbDates; i++) {
          printf("affichage de la date %d\n", i+1);
          dates[i]->affiche();
       }
       // suppression des objets date
       for (int i = 0; i < nbDates; i++)
          delete dates[i];
       // suppression du tableau de pointeurs
       delete [] dates;
    }

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Merci !
    Ok merci donc j'étais bien passé à côté d'un truc évident, désolé je débute en c++. En tout cas merci de votre aide à tous et plus particulièrement à nico maintenant mon programme marche niquel. Bon courage à tous !
    @++
    Tom

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2011, 11h07
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo