IFT1166 Démonstration #4

22-septembre-2000 M.Lokbani mise à jour pour A00




Exercice 1

Reprendre l'exercice 4 de la démonstration 3, le réécrire avec les classes.

Vous avez la classe "date" ayant:

- 3 membres privés (des entiers): jour, mois, annee
et les méthodes publiques suivantes:

- un constructeur par défaut qui se contente d'imprimer le message:
 "le constructeur par defaut a ete appele"

- un constructeur qui réalise les opéartions suivantes:
 initialise les 3 membres prives (jour, mois, annee),
 affiche en sortie "le constructeur avec initialisation de paramètres, a ete appele",
 appel la méthode "affiche_date".

- un destructeur qui:
 affiche en sortie: "le destructeur a ete appele"
 et contient un appel à la méthode "affiche_date"

- la fonction "affiche_date"
 affiche en sortie les 3 membres privés de la classe.
 

Dans la fonction main, vous avez ce qui suit:

int main () {

date fetes[2];
date NouvelAn(1,1,2000);
date Travail(4,9,2000);
fetes[0] = NouvelAn;
fetes[1] = Travail;
return 0;
}

complétez le programme, et examinez les résultats obtenus en sortie.


Exercice 2

Ce programme (demo4exo2.cpp) est-il syntaxiquement correct (cad peut-il être compilé) ? Dans la négative, corrigez-le.

------------------------------------------------------
#include <iostream.h>
class partage {

int a;
static int b=100;
public :
static int c0;
static void init(int i,int j,int k){
a=i;
b=j;
c=k;
}
void afficher();
};

void partage:afficher(){

cout << "la variable statique a : " << a << endl;
cout << "la variable b : " << b << endl;
cout << "la variable statique c : " << c << endl;
}

int main(void)
{

partage x,y;
x.init(1,1);
x.afficher();
y.init(2,2);
y.afficher();
x.afficher();

partage::c++;
partage::a++;

cout << "la variable statique c vaut: " << partage::c << endl;
cout << "la variable statique a vaut: " << partage::a << endl;

return 0;

}


Exercice 3

Écrire un programme contenant la fonction main ainsi que la définition de la classe livre qui est décrite comme suit:

- Deux membres privés : auteur (du livre) et nom (du livre);
- Un constructeur pour initialiser les membres prives, à titre d'exemple par:
Auteur : Albert Camus & Arthur Koestler
Nom: réflexions sur la peine capitale
- Un destructeur;
- Deux fonctions membres publiques, la première permet d'afficher en sortie les membres privés, la seconde affiche ces même membre mais cette fois en utilisant le pointeur autoreference THIS.