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.
 
 
 

49 lines
1.2 KiB

#ifndef FILM_H
#define FILM_H
#include <string>
#include <iostream>
#include "Video.h"
/**
* @brief Classe des Films, héritant de la classe @e Video
*
* Par rapport aux vidéos, les films ont des chapitres
* on trouve donc pour cela deux attributs supplémentaires
*
* les getteurs et les setteurs correspondent à ces nouveaux attributs
*
* il a été également nécessaire de réimplémenter l'opérateur @e =
*/
class Film : public Video {
private:
unsigned int nbChapitres{};
unsigned int * chapitres{};
public:
Film(std::string, std::string, unsigned int = 0);
Film(Film const&);
void setChapitres(unsigned int const *, unsigned int);
unsigned int const * getChapitres() const;
unsigned int getNbChapitres() const;
void afficheChapitres(std::ostream&) const;
virtual ~Film();
Film& operator=(Film const& filmACopier) {
if (this != &filmACopier) {
name = filmACopier.name;
pathname = filmACopier.pathname;
duree = filmACopier.duree;
nbChapitres = filmACopier.nbChapitres;
delete [] chapitres;
chapitres = new unsigned int[filmACopier.nbChapitres];
for (unsigned int i(0); i<filmACopier.nbChapitres; i++) {
chapitres[i] = filmACopier.chapitres[i];
}
}
return *this;
}
};
#endif