Problema 1 Si consideri la seguente specifica del tipo astratto PhotoGallery:
Si vuole scrivere una classe C++ PhotoGallery che realizzi il tipo astratto PhotoGallery, considerando che per riferirsi al tipo astratto Utente e Foto è necessario utilizzare le classi Utente e Foto che si suppone già realizzate, e delle quali non si conosce nulla eccetto che Foto mette a disposizione un metodo public void display() che visualizza sullo schermo la foto oggetto di invocazione.
Domanda 1 Si illustrino le scelte di progetto relative alla realizzazione del tipo astratto PhotoGallery mediante la classe C++ PhotoGallery.
Domanda 2 Si scriva la classe PhotoGallery (file .h e file .cpp) secondo le scelte di progetto illustrate per la Domanda 1. Scrivere il codice di tutte le funzioni pubbliche e private della classe.
Problema 2 Realizzare una funzione SlideShow esterna (non friend) della classe PhotoGallery che dato una photo gallery g, un array di interi a e un intero lung che rappresenta il numero di elementi di a, mostri (invocando il metodo display() della classe Foto) le foto di g le cui posizioni sono memorizzate in a (rispettandone l'ordine in a). Qualora un intero memorizzato in a non rappresenta una posizione valida in g lo si ignori.
Problema 3 Discutere brevemente le nozioni di interferenza e di sharing.