Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/05/2014, 19:43
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Programacion orientada a objetos

A ver te explico por encima, después te paso unos vídeos XD

Una cosa es la idea de lo que es un perro y otra totalmente distinta es un perro.
Una clase es la idea y un objeto es por ejemplo un perro de verdad.
Creamos un modelo o nos hacemos la idea de los que es un perro(CLASE), para después hacer copias(OBJETO) a partir de de la idea.

Como puede ser un perro(Idea)?
Bueno realmente en la programación un perro puede ser como tu quieras... puede hacer cosas que poco tienen que ver con un perro, puede volar o ser invisible pero en nuestra(mi idea) idea de un perro es que tenga un nombre, una edad, una raza y un nombre. Pero puede tener varias otras funciones que no vienen al caso hoy ;).
Así que una vez sabemos como queremos nuestro perro(tenemos la idea) pues haremos la clase...

Elegimos un nombre para la clase... perro mismo XD

Código C++:
Ver original
  1. #include <iostream>
  2. #include <windows.h>
  3. using namespace std;
  4.  
  5. class Perro { //<---Esto es la idea de lo que es un perro =D  
  6.     //La parte publica de Perro
  7.     public:
  8.     //Metodos constructores
  9.        
  10.         //Costructor por defecto
  11.         Perro( int unaEdad = 0, int unPeso  = 0, string unNombre = "No tiene nombre", string unaRaza  = "No tiene raza"   ){
  12.             suEdad   = unaEdad;
  13.             suPeso   = unPeso;
  14.             suNombre = unNombre;
  15.             suRaza   = unaRaza;
  16.         }
  17.        
  18.     //Metodos destructores
  19.         ~Perro(){} //destructor por defecto
  20.        
  21.     //metodos geters "obtener"
  22.         int    getEdad  ()const { return suEdad; }
  23.         int    getPeso  ()const { return suPeso; }
  24.         string getNombre()const { return suNombre; }
  25.         string getRaza  ()const { return suRaza;   }
  26.        
  27.     //Metodos seters "entrada de datos"
  28.         void setEdad  ( int unaEdad ) { suEdad = unaEdad; }
  29.         void setPeso  ( int unPeso  ) { suPeso = unPeso;  }
  30.         void setNombre( string unNombre ) { suNombre = unNombre; }
  31.         void setRaza  ( string unaRaza  ) { suRaza   = unaRaza;  }
  32.        
  33.     //Otros metodos
  34.         void ladrar(){ std::cout << "aroof roof!XD" << endl; }
  35.        
  36.     //La parte privada de perro"No podemos acceder desde fuera de la clase"
  37.     private:
  38.     //Atributos
  39.         int    suEdad;
  40.         int    suPeso;
  41.         string suNombre;
  42.         string suRaza; 
  43. }; //Fin de la idea perro "Esta es la clase no el objeto"
  44.  
  45. int main () {
  46.     system ( "MODE CON cols=100 lines=50" );
  47.  
  48.     //Ahora Creamos 2 objetos "Copias de la clase perro"
  49.     Perro miPerro;                             //Esto es un objeto creado apartir de la clase Perro, realmente es una copia de Perro
  50.     Perro otroPerro( 3, 7, "Rex", "Pitbull" ); //Esto es un objeto creado apartir de la clase Perro, realmente es una copia de Perro
  51.    
  52.     // Como ves aun que llame a la funcion getNombre() en ambos casos dan resultados distintos, son copias de la
  53.     //clase Perro pero tienen sus propios datos, como no he pasado los datos a miPerro a tomado los datos del constructor por defecto
  54.     //que tambien tenia parametros por defecto.
  55.     cout << miPerro.getNombre() << endl;
  56.     cout << otroPerro.getNombre() << endl;
  57.    
  58.     //Ponemos un nombre a miPerro
  59.     miPerro.setNombre("floriponcio");
  60.     cout << miPerro.getNombre() << endl;
  61.     miPerro.ladrar();
  62.    
  63.     cin.ignore();
  64. }
Aqui le puedes ver funcionando: http://codepad.org/AoIXOm1q

En esta pagina: http://v1.minidosis.org/C++/
Tienes vídeos buenísimos sobre clases: http://v1.minidosis.org/C++/Clases/
Este es el su canal de youtube: https://www.youtube.com/user/paueky/playlists

Aquí mas canales con vídeos sobre c++:
https://www.youtube.com/playlist?lis...A837BC005D3614
https://www.youtube.com/playlist?lis...34A65FD9DA6721

Te paso vídeos por que fue realmente donde me quito muchas dudas, pero aparte te recomiendo algún libro para iniciante y mucho foro para las dudas. ;)