Classes, constructeurs, destructeurs et gestion dynamique de la ...
42 pages
Français

Classes, constructeurs, destructeurs et gestion dynamique de la ...

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
  • cours - matière potentielle : cours magistral
  • 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 Classes, constructeurs, destructeurs et gestion dynamique de la mémoire Guillaume Revy Université de Perpignan Via Domitia Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 1/28
  • temps d'exécution des programmes
  • spi eea
  • float getx
  • point2d
  • cpp typederetour
  • cpp void
  • declaration des attributs
  • informatique année universitaire
  • classes
  • classe
  • h30

Sujets

Informations

Publié par
Nombre de lectures 28
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
Classes, constructeurs, destructeurs et gestion dynamique
de la mémoire
Guillaume Revy
guillaume.revy@univ-perp.fr
Université de Perpignan Via Domitia
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 1/28Récapitulatif de l’organisation du cours
Cours magistral : 9h de cours 6 séances de 1.5h, le mardi de 11h à 12h30
Travaux dirigés : 21h de TD 14 séances de 1.5h
,! MI le mardi de 15h30 à 17h et le jeudi de 14h à 15h30
,! SPI EEA le lundi de 14h à 15h30 et le mardi de 14h à 15h30
,! SPI Enermat le mardi de 15h30 à 17h et le jeudi de 11h à 12h30
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 2/28Plan du cours
1. Rappels sur le cours précédent
2. Les constructeurs
3. Les destructeurs
4. Compléments sur le langage C++
5. Gestion dynamique de la mémoire
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 3/28Rappels sur le cours précédent
Plan du cours
1. Rappels sur le cours précédent
2. Les constructeurs
3. Les destructeurs
4. Compléments sur le langage C++
5. Gestion dynamique de la mémoire
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 4/28Rappels sur le cours précédent
Comment déclarer une classe ?
// Classe.hpp
#ifndef __CLASSE_HPP__ // <-- directives de precompilation
#define __CLASSE_HPP__ //
class Classe : <private|protected|public> ClasseMere
{
private:
// declaration des attributs et methodes prives
protected:
// declaration des attributs et methodes proteges
public:
// declaration des attributs et methodes publics
};
#endif // __CLASSE_HPP__
Grâce aux directives de précompilation, la classe n’est incluse qu’une seule fois
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 5/28Rappels sur le cours précédent
Retour à la déclaration de la classe Point2D
// Point2D.hpp
#ifndef __POINT2D_HPP__
#define __POINT2D_HPP__
class Point2D
{
private:
float x, y;
public:
void init2d(float, float);
void translate2d(float, float);
void print(void);
Pour respecter le principe
float getX(void);
d’encapsulation attributs privés, float getY(void);
voire protégés
void setX(float);
void setY(float);,! 1 des 3 grands principes de la POO
}; // <---- A NE PAS OUBLIER !!,! prévoir des méthodesget etset
#endif // __POINT2D_HPP__
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 6/28Rappels sur le cours précédent
Comment définir les méthodes d’une classe ?
On peut définir une méthode directement dans la définition de la classe
// Point2D.hpp
#ifndef __POINT2D_HPP__
#define __POINT2D_HPP__
class Point2D
{
// ...
float getX(void){ return x; }
// ...
};
#endif // __POINT2D_HPP__
On parle de fonction inline
son utilisation améliore le temps d’exécution des programmes (en réduisant la
lourdeur de l’appel aux fonctions)
son utilisation peut entraîner une augmentation de la taille du code de l’application
,! à n’utiliser que pour des fonctions de petite taille
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 7/28Reprenons par exemple la méthodetranslate2d de la classe Point2D :
// Point2D.cpp
void Point2D::translate2d(float _x, float _y){
x += _x;
y += _y;
}
Rappels sur le cours précédent
Comment définir les méthodes d’une classe ?
Ou bien de manière séparée :
// Classe.cpp
typeDeRetour Classe::nomDeLaMethode( <liste des parametres> ){
// definition de la methode
}
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 7/28Rappels sur le cours précédent
Comment définir les méthodes d’une classe ?
Ou bien de manière séparée :
// Classe.cpp
typeDeRetour Classe::nomDeLaMethode( <liste des parametres> ){
// definition de la methode
}
Reprenons par exemple la méthodetranslate2d de la classe Point2D :
// Point2D.cpp
void Point2D::translate2d(float _x, float _y){
x += _x;
y += _y;
}
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 7/28Rappels sur le cours précédent
Schéma de compilation séparée
.cpp
.hpp
Dev· eloppeur Utilisateur
Guillaume Revy (Univ. de Perpignan Via Domitia) Classes, constructeurs, destructeurs et gestion dynamique de la mémoire 8/28

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