]> git.llucax.com Git - z.facultad/75.29/susanita.git/blob - src/susanita.h
Mover mostrar_estado() de GaleShapley a Susanita.
[z.facultad/75.29/susanita.git] / src / susanita.h
1 #ifndef _SUSANITA_H_
2 #define _SUSANITA_H_
3
4 #include "persona.h"
5 #include <map>
6 #include <deque>
7 #include <string>
8
9 /// Interfaz para nuestra clases casamenteras
10 struct Susanita
11 {
12
13         /// Tipos
14         typedef std::deque< Persona* > personas_type;
15
16         /// Destructor
17         virtual ~Susanita();
18
19         /// Agrega persona
20         virtual void add_persona(Persona* p);
21
22         /// Obtiene una persona
23         virtual Persona* get_persona(const std::string& p) const;
24
25         /// Empieza a emparejar gente
26         virtual void casamentear() = 0;
27
28         /// Lista de hombres
29         personas_type hombres;
30
31         /// Lista de mujeres
32         personas_type mujeres;
33
34         protected:
35         /// Tipos
36         typedef std::map< std::string, Persona* > nombres_type;
37
38         /// Mapa de gente, relaciona nombres con objetos
39         nombres_type nombres;
40
41         /// Muestra estados
42         void mostrar_estado() const;
43
44 };
45
46 #endif // _SUSANITA_H_