# Cour 2 -- Language Orienté Objet avancé (C++)
###### tags `cour` `M1 S1` `cpp`
[Somaire](/V1WXmN9oTdauw8pTXPhqrQ)\
[Precedent](Mwwr080yRPatA0yACc37dQ)
> [time= 21 sept 2020]
[TOC]
## surcharge de fonction
:::success
**signature**: identificateur + liste des types des args
:::
:::success
**prototype**: signature + type de retour.
:::
## porté
```cpp=
int v;
int foo(int v)
{
v = 3; //local (parametre)
::v = 3; // global
return 12;
}
```
```cpp=
namespace math
{
float pi = 3.14
}
namespace chimie
{
char *e = “C5H9NO4“;
}
using namespace chimie;
int main()
{
float pi_sur_2 = pi / 2;
char* acideGlutaminique = e;
}
```
## paradigme objet
On pense du code souvent avec la *méthode foctionnel*(différent de la prog fonctionnel) cad la programation structuré:
- calquée sur le modèle des machines
- des données
- des fonctions
Ce qui donne des languages comme *C, Pascal, Assembleur*
La méthode **objet**:
- fonctionne par analogie avec le modèle du problème
- mettre en correspondance l'espace des problèmes et l'espace des solutions
## UML

### généralisation / spécialisation
UML:

La fleche blanche représente en généralisation.
Elle va de l'objet spécifique vers la g'énéralisation
### Agrégation / Compositon
#### Agrégation
- l’agrégation est une relation de nature asymétrique reliant des composants(élément) à un composé(ensemble)
- la vie des éléments est **indépendante** de celle de l’agrégat
- un élément peut appartenir à **plusieurs** agrégats
- elle est repésenter en UML par une fleche avec un **losange blanc** allant du composé vers le composant (avec au bout l'arrité)
++exemple++:
un e-mail peut agréger des documents joints

#### Composition
- est une agrégation forte (agrégat de valeurs)
- une destruction du composé **entraîne la destruction** des composants
- un composant ne peut appartenir qu’à **un seul** composé
- elle est repésenter en UML par une fleche avec un **losange noir** allant du composé vers le composant (avec au bout l'arrité)

++exemple++:
les pièces d’une maison, l’UFR d’Informatique de Paris Diderot
## association
Il s’agit d’un simple lien établissant l’existence d’une relation sans subordination conceptuelle.\
Elle est représenté en UML par une bouble fleche.
++exemple++:
une personne est le frère d’une autre, un individu est le client d’un magasin

### diagramme d’états-transitions
- décrit les **changements d’états** d’un objet consécutifs aux interactions faite avec le système
- un état est l’union des valeurs stables des attributs entre deux interactions

### diagramme de séquence
- décrit des **interactions entre objets** d’un point de vue temporel
- le point important est l’**aspect communication**

[next]()