***** 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