Vous êtes sur la page 1sur 5

09/01/2016

Programmation Oriente Objet


par C++
ZAKRANI Abdelali
ENSAM CASABLANCA
Anne universitaire 2015-2016

Rappel
La sance dernire
Fonctions amies:
dclaration, dfinition et utilisation
Hritage simple
Drivation publique / prive
Redfinition des fonctions
Hritage multiple

Cette sance
Surdfinition des oprateurs

ZAKRANI / POO par C++ / 13-14

09/01/2016

Introduction

C++ autorise la surdfinition(surcharge) des fonctions


(fonctions membres ou indpendantes):

Cette technique consiste attribuer le mme nom des


fonctions diffrentes, lors dun appel, le choix de la
bonne fonction est effectu par le compilateur, suivant
le nombre et le type des arguments.

C++ permet galement, dans certaines conditions,


de surdfinir des oprateurs:

Il ralise dj la surdfinition (a+b : entiers, rels)


Cette possibilit nous permettra de crer, par le biais des
classes, des types part entire, cest--dire munis,
comme les types de base, doprateurs parfaitement
intgrs.
ZAKRANI / MOO par UML / 13-14

Utilit & Exemple


Class complexe
{ float re;
float im;

#include " complexe.h"

main {
complexe a,b;

En surdfinissant les oprateurs +, - et *: nous pouvons


donner signification aux expressions a+b, a-b et a*b.
Lors de la surdfinition des oprateurs vous spcifiez le
rle exact que vous souhaitez leur attribuer.

ZAKRANI / POO par C++ / 13-14

09/01/2016

Le mcanisme de la
surdfinition doprateurs
Class point
{ int x, y;

Objectif: surdfinir loprateur +


-------------------------------------------Rle: la somme de deux points est
un point dont les coordonnes sont
la somme de leurs coordonnes

Pour cela, le mcanisme adopt par C++ est de


dfinir une fonction sous le nom: operater+ (le mot
cl operator suivi du loprateur concern)
Dans notre cas, notre fonction operator + doit
disposer de deux arguments de type point et fournir
une valeur de retour du mme type.
Cette fonction doit tre fonction membre ou indpendante?
ZAKRANI / POO par C++ / 13-14

Surdfinition doprateur avec une


fonction amie
Dclaration du prototype de
la fonction amie employe
pour surdfinir loprateur +

Dfinition de la fonction
amie employe pour
surdfinir loprateur +
Coordonnees : 1 2
Coordonnees : 2 5
Coordonnees : 3 7
Coordonnees : 6 14
ZAKRANI / POO par C++ / 13-14

09/01/2016

Surdfinition doprateur avec une


fonction membre
Dclaration du prototype de
la fonction membre employe
pour surdfinir loprateur +

Dfinition de la fonction
membre employe pour
surdfinir loprateur +
Coordonnees : 1 2
Coordonnees : 2 5
Coordonnees : 3 7
Coordonnees : 6 14
ZAKRANI / POO par C++ / 13-14

Exercice 1

Dfinir une classe des nombres complexe


qui contient:
Un constructeur qui prend deux arguments et
avec des valeurs dfaut.
Une fonction qui afficher le nombre complexe
sous la forme : a + bi
Surcharger loprateur + (somme de 2
complexes) en utilisant une fonction membre
Surcharger loprateur en utilisant une fonction
amie

crire un programme principal pour le test


ZAKRANI / POO par C++ / 13-14

09/01/2016

Exercice 2

Dfinir une classe date:


Un constructeur qui prend trois arguments et
avec des valeurs dfaut.
Une fonction qui afficher la date sous la forme :
jj/mm/aaaa
Surcharger loprateur < et > en utilisant une
fonction membre
Surcharger loprateur == et != en utilisant une
fonction amie

crire un programme principal pour le test


ZAKRANI / POO par C++ / 13-14

Vous aimerez peut-être aussi