#ifndef TP5_PROJET_HPP #define TP5_PROJET_HPP 1 #include "../includes/Tache.hpp" #include #include #include struct Projet { // Alias parce que le type est long using VecTaches = std::vector>; private: // Héritage de tache ? // Tache fin; VecTaches taches; friend std::ostream &operator<<(std::ostream &, const Projet &); public: Projet(); // constructor Projet(VecTaches); // constructor virtual ~Projet(); // destructor Projet(const Projet &); // copy constructor const Projet &operator=(const Projet &); // copy assignement VecTaches getTaches() { return taches; } // Retourne une paire d'indentifiants de tâches au hasard std::pair pick_two_random_tasks(); // Indique pour une tâche si elle fait partie du projet Tache *contains(int id); // Donne une version du vecteur de tâches non modifiable const VecTaches consult_tasks() const { return taches; }; // Corrige les éventuelles anomalies du vector de tâches const VecTaches topologicalSort(); }; #endif