
#include<iostream> //Pour les entrées/sorties
using namespace std;
class Date
{
private:
int *jour, *mois, *annee;
public:
Date(int,int,int); //Constructeur par défaut
Date (const Date &); //constructeur de copie
~Date(); //Destructeur
/* Méthodes d’accès */
void DefinirDate(int j,int m,int a)
{ *jour=j; *mois=m; *annee=a; }
void LireDate() const
{ cout<<*jour<<" "<<*mois<<" "<<*annee<<endl; }
int LireJour() const { return *jour; }
int LireMois() const { return *mois; }
int LireAnnee() const { return *annee; }
};
#include"Date.h" //Inclusion de la déclaration de Date
/****Définition du constructeur****/
Date::Date(int j,int m,int a)
{
/*réservation de l’espace mémoire dans le tas, les valeurs des membres sont ensuite stockées aux adresses correspondantes*/
jour=new int; *jour=j;
mois=new int; *mois=m;
annee=new int; *annee=a; //
}
/****Définition du constructeur de copie***/
Date::Date(const Date &source) //l’objet source est protégé par const
{
/*réservation de l’espace mémoire dans le tas puis copie des valeurs aux adresses correspondantes*/
jour=new int; *jour=source.LireJour();
mois=new int; *mois=source.LireMois();
annee=new int; *annee=source.LireAnnee();
}
/****Définition du destructeur****/
Date::~Date()
{
delete jour; jour=0; //libération de la mémoire
delete mois; mois=0;
delete annee; annee=0;
}
int main()
{
cout << "\nNous créons l’objet Date_initiale= 1 1 2009 ";
Date Date_initiale(1,1,2009);
cout << "\nNous le copions dans l’objet Copie_date ";
Date Copie_date=Date_initiale ;
//équivalent à Date Copie_date(Date_initiale);
cout << "\nNous changeons maintenant Date_initiale en 31 12 2010 " << endl;
//modification de l’objet initial :
Date_initiale.DefinirDate(31,12,2010);
cout << "Nous obtenons les deux objets : \n" ;
cout << "Date_initiale = ";
Date_initiale.LireDate();
cout << "Alors que Copie_date a toujours la valeur: ";
Copie_date.LireDate();
cout << "\nCQFD" << endl;
}
Nous créons l’objet Date_initiale= 1 1 2009 Nous le copions dans l’objet Copie_date Nous changeons maintenant Date_initiale en 31 12 2010 Nous obtenons les deux objets : Date_initiale = 31 12 2010 Alors que Copie_date a toujours la valeur: 1 1 2009 CQFD
Vous n'aimez pas le lifting de Facebook ? Le site Mashable propose cinq étapes pour revenir à l'ancienne présentation du réseau social.