Composition de classes, classes et fonctions amies, et héritages
42 pages
Français

Composition de classes, classes et fonctions amies, et héritages

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
42 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Licence, Supérieur, Licence (bac+3)
  • cours - matière potentielle : précédent
  • mémoire
Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2011/2012 Programmation Orientée Objet Composition de classes, classes et fonctions amies, et héritages Guillaume Revy Université de Perpignan Via Domitia Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 1/32
  • classea
  • implantation des relations de composition
  • constructeur par copie classea
  • composition de classes
  • appel du destructeur de la classe fichier
  • implantation des relations de composition agrégation
  • émail
  • email
  • std
  • fichiers
  • fichier

Sujets

Informations

Publié par
Nombre de lectures 340
Langue Français

Extrait

Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia
Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2011/2012
Programmation Orientée Objet
Composition de classes, classes et fonctions amies, et
héritages
Guillaume Revy
guillaume.revy@univ-perp.fr
Université de Perpignan Via Domitia
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 1/32Plan du cours
1. Rappels sur le cours précédent
2. Implantation des relations de composition
3. Classes et fonctions amies
4. Implantation de l’héritage en C++
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 2/32Rappels sur le cours précédent
Plan du cours
1. Rappels sur le cours précédent
2. Implantation des relations de composition
3. Classes et fonctions amies
4. Implantation de l’héritage en C++
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 3/32// ClasseA.cpp
class ClasseA
{
public:
ClasseA(); // constructeur par defaut
ClasseA(ClasseA const&); // constructeur par copie
ClasseA(...); // constructeur specialise
~ClasseA(); // destructeur
};
Rappels sur le cours précédent
Les constructeurs et destructeurs
Un constructeur méthode spéciale utilisée pour initialiser les instances d’une
classe, affecter une valeur à chacun de leurs attributs
,! appelé immédiatement à chaque fois qu’un espace est alloué pour un objet
,! constructeur par défaut, par copie, ou spécialisé (défini par l’utilisateur)
Un destructeur méthode spéciale automatiquement appelée lors de la
destruction d’une instance de classe
,! juste avant que la mémoire utilisée par l’objet ne soit récupérée par le système
,! il y a au plus un destructeur par classe
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 4/32Rappels sur le cours précédent
Les constructeurs et destructeurs
Un constructeur méthode spéciale utilisée pour initialiser les instances d’une
classe, affecter une valeur à chacun de leurs attributs
,! appelé immédiatement à chaque fois qu’un espace est alloué pour un objet
,! constructeur par défaut, par copie, ou spécialisé (défini par l’utilisateur)
Un destructeur méthode spéciale automatiquement appelée lors de la
destruction d’une instance de classe
,! juste avant que la mémoire utilisée par l’objet ne soit récupérée par le système
,! il y a au plus un destructeur par classe
// ClasseA.cpp
class ClasseA
{
public:
ClasseA(); // constructeur par defaut
ClasseA(ClasseA const&); // constructeur par copie
ClasseA(...); // constructeur specialise
~ClasseA(); // destructeur
};
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 4/32Implantation des relations de composition
Plan du cours
1. Rappels sur le cours précédent
2. Implantation des relations de composition
3. Classes et fonctions amies
4. Implantation de l’héritage en C++
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 5/32Implantation des relations de composition
Rappel sur les relations de composition et d’agrégation
Agrégation/Composition : relation entre classes, indiquant que les instances d’une
classe sont les composants d’une autre
Agrégation exprime une relation de composition faible
,! les objets agrégés ont une durée de vie indépendante de celle de l’agrégat
Composition exprime une relation de composition forte
,! les objets agrégés ont une durée de vie dépendante de celle de l’agrégat
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 6/32Implantation des relations de composition
Agrégation : exemple d’une classe Email
On souhaite modéliser un email, à travers la classe Email, pouvant être composé
d’un fichier joint (classe Fichier)
#ifndef __EMAIL_HPP__ #include <iostream>
#define __EMAIL_HPP__ #include "Email.hpp"
#include "Fichier.hpp" Email::Email()
{ std::cout << "Creation d’un email sans piece
class Email jointe" << std::endl; }
{
private: Email::Email(Fichier * f)
Fichier * f; {
this->f = f;
public: std::cout << "Creation d’un email avec piece
Email(); jointe" << std::endl;
Email(Fichier *); }
~Email();
}; Email::~Email()
{ std::cout << "Suppression d’un email... mais
#endif pas de la piece jointe" << std::endl; }
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 7/32$> ./c3-expl1 Construction et destruction desCreation d’un fichier a joindre a un
mail composants effectués par l’utilisateur
Creation d’un email avec piece jointe
J’envoie mon email...
Suppression d’un fichier Respect de la spécification de
Suppression d’un email... mais pas de
la piece jointe l’agrégation
Implantation des relations de composition
Agrégation : exemple d’une classe Email
// c3-expl0.cpp
#include <iostream>
#include "Email.hpp"
#include "Fichier.hpp"
int
main( void )
{
Fichier * f = new Fichier(); // Appel du constructeur de la classe Fichier
Email e(f); // Appel du constructeur de la classe Email
std::cout << "J’envoie mon email..." << std::endl;
delete f; // Appel du destructeur de la classe Fichier
return 0; // Appel du destructeur de la classe Email
}
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 8/32Implantation des relations de composition
Agrégation : exemple d’une classe Email
// c3-expl0.cpp
#include <iostream>
#include "Email.hpp"
#include "Fichier.hpp"
int
main( void )
{
Fichier * f = new Fichier(); // Appel du constructeur de la classe Fichier
Email e(f); // Appel du constructeur de la classe Email
std::cout << "J’envoie mon email..." << std::endl;
delete f; // Appel du destructeur de la classe Fichier
return 0; // Appel du destructeur de la classe Email
}
$> ./c3-expl1
Construction et destruction desCreation d’un fichier a joindre a un
mail composants effectués par l’utilisateur
Creation d’un email avec piece jointe
J’envoie mon email...
Suppression d’un fichier Respect de la spécification de
Suppression d’un email... mais pas de
la piece jointe l’agrégation
Guillaume Revy (Univ. de Perpignan Via Domitia) Composition de classes, classes et fonctions amies, et héritages 8/32

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents