Les classes et les instances.

Sans la programmation orientée objet

Tous les travaux réalisés dans ce cours devront être stockés dans votre répertoire personnel, dans le dossier ".../S3/ProgrammationObjet". A vous de l'organiser au mieux pour toujours retrouver vos sources, et pour les reconnaître sans avoir à les ouvrir.

Exercice 01 : Vous devez saisir et compléter le programme suivant, puis le compiler et le tester. Celui-ci permet de gérer un étudiant (saisie simple, affichage), en utilisant une structure.

#include <iostream>
using namespace std;
//déclaration de la structure de stockage des données d'un étudiant
struct structEtudiant 
{
	string nom, prenom, bacorigine;
	char sexe;
	int taille;
}; 
//création d'un nouveau type correspondant à  struct  structEtudiant
	typedef  struct  structEtudiant  typeEtudiant;

/*procédure permettant la saisie d'un étudiant*/
void faitSaisir(typeEtudiant & unEtudiant)
{
}

/*procédure permettant l'affichage d'un étudiant*/
void affichage(typeEtudiant unEtudiant)
{
}

/*programme principal*/
int main()
{
	//déclaration d'une instance de type etudiant
	typeEtudiant premierEtudiant,deuxiemeEtudiant;
	//saisie des deux étudiants
	faitSaisir(premierEtudiant);
	faitSaisir(deuxiemeEtudiant);
	//affichage des deux étudiants du plus jeune au plus vieux
	...
	
}
					

Définition de la notion de classe.

La classe est le type de l'objet que l'on souhaite créer. C'est la structure qui permet de rassembler toutes les données et les fonctions qui seront indispensables pour notre objet. Les fonctions et données sont alors dites membres de cette classe.

Les données membres d'une classe sont appelées propriétés. Ces propriétés ne contiennent que des informations concernant la classe. Les fonctions membres d'une classe sont appelées méthodes. Ces méthodes ne travaillent généralement que sur les propriétés de la classe.

Les méthodes et les propriétés faisant partie du même objet, les méthodes peuvent travailler directement sur les propriétés de la même classe, simplement en utilisant leur nom.

Définition de la notion d'instance.

Une instance ou un objet est une représentation de la classe : c'est-à-dire un élément qui regroupe toutes les informations (propriétés et méthodes) membres de la classe. On peut dire que l'instance d'une classe est comme la variable dont le type est la classe.

Exercice 02 : Vous devez saisir et compléter le programme suivant, puis le compiler et le tester. Celui-ci permet de créer une classe gérant (saisie simple, affichage) un étudiant.

#include <iostream>
using namespace std;

//interface de la classe etudiant
class classEtudiant 
{
public :
	//déclaration des propriétés
	string nom, prenom, bacorigine;
	char sexe;
	int taille;
	//déclaration des méthodes
	void saisie();
	void affiche();
};
// implémentation de la classe
void classEtudiant::saisie()
{
	...
}

void classEtudiant::affiche()
{
       	...
}

int main()
{
	//instanciation d'un exemplaire de la classe classEtudiant 
	classEtudiant unEtudiant;
	unEtudiant.saisie();
	unEtudiant.affiche();
	return(0);
}
				

Ce programme déclare la classe etudiant et implémente ses méthodes puis l'instancie et utilise l'objet créé. A noter que l'implémentation des méthodes se fait en dehors de la déclaration de la classe. C'est pourquoi, l'entête des méthodes lors de leur implémentation intègre le nom de la classe suivi de ::.

Exercice 03 : Déclarez, implémentez, instanciez et testez une classe date qui permet saisir (sans tester la saisie) et d'afficher une date. La saisie se fait au format jjmmaaaa, l'affichage doit ressembler à ceci : jj/mm/aaaa.

Exercice 04 : Reprenez l'exercice 2, pour que la date de naissance de l'étudiant fasse partie des propriétés de la classe étudiant, en utilisant la classe date créé dans l'exercice 3.

Exercice 05 : Reprenez l'exercice 4, en isolant chaque classe dans sa propre bibliothèque, modifiez le main.cpp en conséquence.