You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.3 KiB
71 lines
2.3 KiB
1 year ago
|
***** PARTIE C++ *****
|
||
|
|
||
|
Etape 1 : OK
|
||
|
|
||
|
Etape 2 : OK
|
||
|
|
||
|
Etape 3 : OK
|
||
|
|
||
|
Etape 4 :
|
||
|
|
||
|
--- Comment appelle-t'on ce type de méthode et comment faut-il les déclarer ?
|
||
|
--> Ce type de méthode est une méthode abstraite, il faut la déclarer en
|
||
|
--> rajoutant const = 0 dans le header
|
||
|
|
||
|
Etape 5 :
|
||
|
|
||
|
--- Quelle est la propriété caractéristique de l'orienté objet qui permet de faire cela ?
|
||
|
--> C'est le polymorphisme
|
||
|
|
||
|
--- Qu'est-il spécifiquement nécessaire de faire dans le cas du C++ ?
|
||
|
--> il faut déclarer les méthodes "virtual"
|
||
|
|
||
|
--- Quel est le type des éléments du tableau : est-ce que ce tableau contient
|
||
|
--- les objets ou des pointeurs vers ces objets ?
|
||
|
---> Ce tableau contient des pointeurs vers ces objets
|
||
|
|
||
|
Etape 6 :
|
||
|
|
||
|
--- Que faut-il faire pour que l'objet Film ait plein contrôle sur ses données
|
||
|
--- et que son tableau de durées des chapitres ne puisse pas être modifié (ou pire, détruit) à son insu ?
|
||
|
--> Il faut recopier le tableau passé en paramètre
|
||
|
|
||
|
--- Quelle est la solution très simple que propose C/C++ pour éviter ce problème ?
|
||
|
--> Il suffit de déclarer la méthode const *
|
||
|
|
||
|
Etape 7 :
|
||
|
|
||
|
--- Parmi les classes précédemment écrites quelles sont celles qu'il faut modifier
|
||
|
--- afin qu'il n'y ait pas de fuite mémoire quand on détruit leurs instances ?
|
||
|
--> Il faut modifier la classe Film car elle possède un attribut dont le type
|
||
|
--> n'est pas un type de base
|
||
|
|
||
|
--- Pourquoi et que faudrait-il faire ?
|
||
|
--> La copie d'objets peut poser problème car ce serait une copie superficielle,
|
||
|
--> Les attributs qui sont des pointeurs pointeraient vers le meme objet.
|
||
|
--> Il faut alors redéfinir l'opérateur = et le constructeur de copie
|
||
|
|
||
|
Etape 8 :
|
||
|
|
||
|
--- On rappelle aussi que la liste d'objets doit en fait être une liste de pointeurs d'objets. Pourquoi ?
|
||
|
--> Si on veut qu'un objet puisse apartenir à plusieurs groupes, il faut que chaque
|
||
|
--> groupe contienne des pointeurs vers les objets, pour ne pas dupliquer les objets
|
||
|
--> En java, il n'y a pas de pointeurs explicite, tout est fait implicitement
|
||
|
|
||
|
Etape 9 : OK
|
||
|
|
||
|
Etape 10 :
|
||
|
|
||
|
--- Comment peut-on l'interdire, afin que seule la classe servant à manipuler les objets puisse en créer de nouveaux ?
|
||
|
--> On peut rendre le constructeur private et mettre en amie la classe Gestion
|
||
|
|
||
|
Etape 11 : OK
|
||
|
|
||
|
Etape 12 : non traitée
|
||
|
|
||
|
Etape 13 : non traitée
|
||
|
|
||
|
***** PARTIE JAVASWING *****
|
||
|
|
||
|
Utilisation des AbstractAction
|