#include <iostream>
using namespace std;
/**
* La clase Persona guarda:
* - edad [-]
* - nombre (de la persona) [-]
* - tipo (niño, adolescente, joven, adulto mayor) [-]
* - getters y setters [+]
*
*/
class Person {
private:
int unsigned age;
string name, type;
public:
//Mediante la edad, se le definirá un tipo
string define_type(int unsigned age)
{
if(age < 11) return "niño";
if(age > 10 && age < 16) return "adolescente";
if(age > 15 && age < 22) return "joven";
if(age > 22 && age < 51) return "adulto";
return "tercera edad";
}
/**
* constructor de la clase
* @param age la edad de la persona
* @param name el nombre de la persona
*/
Person(int unsigned age, string name)
{
type = define_type(age);
this->name = name;
}
/**
* Constructor de la clase
* @warning si lo usas ten en cuenta que no existe nombre, edad ni tipo
*/
Person() {}
/*********************
* Getters y setters *
*********************
*/
int get_age()
{
return age;
}
string get_name()
{
return name;
}
string get_type()
{
return type;
}
void set_age(int unsigned age)
{
this->age = age;
}
void set_name(string name)
{
this->name = name;
}
void set_type(string type)
{
this->type = type;
}
};
int main()
{
Person * kevin = new Person(19, "kevin");
cout << kevin->get_name() << " es un: " << kevin->get_type();
return 0;
}