Sunteți pe pagina 1din 4

#include<iostream> 3 Librerias, 2 de ellas ya sabemos para que sirven, la

de string.h sirve para poder escribir cadenas de


#include<string.h>
caracteres completas y que es necesario para esta
#include<stdlib.h> clase.

using namespace std;

class Persona{ Este clase ya es más apegada a la realidad y más compleja en


estructura, es la clase Persona, en sus atributos privados o protegidos
protected: se debe encontrar aquellas características con las cuales cuenta una
persona. Nombre declarado como variable string es decir un arreglo
string nombre; de caracteres, edad de tipo entero, estatura flotante, y un solo
int edad; carácter para el genero M o F. Además como se vio en la clase
fracción se agregan métodos privados capaces de verificar y controlar
float estatura; el comportamiento del objeto dado que el usuario puede ingresar
edades,estatras o generos irregulares o distintos a los establecidos.
char genero;

void verificaEdad();

void verificaEstatura();

void verificaGenero();

public:

Persona(string="",int=0,float=0.3,char='m');

virtual void pideleAlUsuarioTusDatos();


De forma publica se establece el constructor que ahora ya tiene más
virtual void muestraTusDatos();
argumentos que se inicializan con un valor determinado. Nombre:””es
string dameTuNombre(); decir un espacio en blanco, edad 0 ya que puede ser un recién
nacido, estatura minima de 30cm tratándose de un bebé, y genero ‘m’
int dameTuEdad(); por default lo define como masculino. Ahora verás que en los
mpetodos habituales del inicio tienen un ‘virtual’ esto va a servir más
float dameTuEstatura();
adelante con clases derivadas de ‘persona’ la palabra virtual establece
char dameTuGenero(); que ése método va a poder ser llamado en una subclase y
comportarse de diferente manera dependiendo de que nuevo objeto
void modificaTuNombre(string); se traté. Ejemplo si persona posee todas las características generales
void modificaTuEdad(int); de un individuo es cierto que un alumno, un profesor y una secretaria
comparten algunas de esas características pero otras no, es decir los 3
void modificaTuEstatura(float); son personas pero cada uno tiene diferentes formas de comportarse
como objeto y a eso le llamamos POLIMORFISMO. Más adelante lo
void modificaTuGenero(char); verás con otras clases que te mandaré derivadas de ésta.
}; Abajo vienen los métodos habituales con su modo de retorno
correspondiente.
void Persona::verificaEdad(){

if(edad<0){

cout<<"Error!. Edad invalida"<<endl;

exit(1);

if(edad>120){

cout<<"Error!. Edad invalida"<<endl;

exit(2);

}
En estos métodos privados puedes ver la forma en
que se verifica la eda, estatura y genero de los
void Persona::verificaEstatura(){ datos ingresados o inicializados desde un
comienzo. Ante cualquier irregularidad nosotros
if(estatura<0.3){ programamos para enviar mensaje de error y
cout<<"Error!. Estatura invalida"<<endl; pedir nuevamente los datos correctos.

exit(3);

if(estatura>2.50){

cout<<"Error!. Estatura invalida"<<endl;

exit(4);

void Persona::verificaGenero(){

if(genero!='m'){

cout<<"Error!. Genero invalido";


exit(5);}

if (genero!='f'){

cout<<"Error!. Genero invalido";

exit(6);

Persona::Persona(string n,int ed,float es,char g):nombre(n),edad(ed),estatura(es),genero(g){

} Constructor con datos argumentados por si el


usuario inicializa desde un principio todos los
atributos.
void Persona::pideleAlUsuarioTusDatos(){

cout<<"Dame mi nombre"<<endl;
El método que pide los datos, como puedes ver sólo se pone
getline(cin,nombre); ‘virtual’ en la declaración de la clase, aquí ya no es necesario
ponerlo.
cout<<"Dame mi edad"<<endl;
Abajo viene el método para mostrar cada dato en pantalla.
cin>>edad;

cout<<"Dame mi estatura"<<endl;

cin>>estatura;

cout<<"Dame mi genero"<<endl;

cin>>genero;

void Persona::muestraTusDatos(){

cout<<"Mi nombre es:"<<nombre<<endl<<"Mi edad es:"<<edad<<endl<<"Mi estatura


es:"<<estatura<<endl<<"Mi genero es:"<<genero<<endl;

string Persona::dameTuNombre(){
return nombre;

int Persona::dameTuEdad(){

return edad;

} Aquí todos los métodos que regresan cada atributo del


float Persona::dameTuEstatura(){ objeto persona para cuando este sea necesario ocupar en
algún procedimiento del main o subclase como lo verás con
return estatura; las otras 4 subclases que te mandaré.

char Persona::dameTuGenero(){

return genero;

void Persona::modificaTuNombre(string a){

nombre=a;

void Persona::modificaTuEdad(int a){

edad=a;

void Persona::modificaTuEstatura(float a){

estatura=a;

void Persona::modificaTuGenero(char a){

genero=a;

S-ar putea să vă placă și