jueves, 21 de mayo de 2015

18 - Tutorial de C++ en español - Constructor (Programación Orientada a Objetos)




En esta parte del tutorial de C++ continuamos con la Programación Orientada a Objetos y conoceremos el concepto de constructores.

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declaran.
  • Tienen el mismo nombre que la clase a la que pertenecen.
  • No tienen tipo de retorno, es decir, no regresan ningún valor.
  • Deben ser públicos.
  • No pueden ser heredados.

En el ejemplo del capítulo agregaremos una función constructor a la clase Persona para definir los valores de determinados datos que se cargarán al inicializar el objeto.

persona.h


#include <iostream>

/*
Clase: se puede considerar como un patrón para construir objetos, una clase contiene una 
serie de herramientas específicas que la hacen única.
*/

/*
Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una 
determinada clase al mismo tiempo que se declaran.
- Tienen el mismo nombre que la clase a la que pertenecen.
- No tienen tipo de retorno, es decir, no regresan ningún valor.
- Deben ser públicos.
*/


using namespace std;

class Persona{
      private:
              int _piernas;
              int _brazos;
              int _cabeza;
              string _nombre;
              string _apellidos;
      public:
             Persona(string n, string a);
             int piernas(){return _piernas;};
             int brazos();
             int cabeza(){return _cabeza;};
             static string color_ojos;
             static string color_pelo;
             float altura(float a){return a;};
             float peso(float p);
             static int edad;
             string nombre(){return _nombre;};
             string apellidos(){return _apellidos;};
             
      };
 
Persona::Persona(string n, string a)
{
  _piernas = 2;
  _brazos = 2;
  _cabeza = 1;
  _nombre = n;     
  _apellidos = a;           
}
      
int Persona::brazos()
{
    return _brazos;
}

string Persona::color_ojos = "negros";
string Persona::color_pelo = "negro";

float Persona::peso(float p)
{
 return p;     
}

int Persona::edad = 0;



persona.cpp

#include 
#include "persona.h"

using namespace std;

int main(int argc, char *argv[])
{

 Persona person("Manuel", "Davila Gonzalez");
 cout << "Una persona:" << endl;
 cout << "Nombre: " << person.nombre() << endl;
 cout << "Apellidos: " << person.apellidos() << endl;
 cout << "Piernas: " << person.piernas() << endl;
 cout << "Brazos: " << person.brazos() << endl;
 cout << "Cabeza: " << person.cabeza() << endl;
 person.color_ojos = "azul";
 cout << "Color de los ojos: " << person.color_ojos << endl;
 person.color_pelo = "rubio";
 cout << "Color del pelo: " << person.color_pelo << endl;
 cout << "Altura: " << person.altura(1.80) << endl;
 cout << "Peso: " << person.peso(77.7) << endl;
 person.edad = 30;
 cout << "Edad: " << person.edad << endl;
 
 system("PAUSE");
 return 0;
}