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#include <iostream>
#include <windows.h>
using namespace std;
class Perro { //<---Esto es la idea de lo que es un perro =D
//La parte publica de Perro
public:
//Metodos constructores
//Costructor por defecto
Perro( int unaEdad = 0, int unPeso = 0, string unNombre = "No tiene nombre", string unaRaza = "No tiene raza" ){
suEdad = unaEdad;
suPeso = unPeso;
suNombre = unNombre;
suRaza = unaRaza;
}
//Metodos destructores
~Perro(){} //destructor por defecto
//metodos geters "obtener"
int getEdad ()const { return suEdad; }
int getPeso ()const { return suPeso; }
string getNombre()const { return suNombre; }
string getRaza ()const { return suRaza; }
//Metodos seters "entrada de datos"
void setEdad ( int unaEdad ) { suEdad = unaEdad; }
void setPeso ( int unPeso ) { suPeso = unPeso; }
void setNombre( string unNombre ) { suNombre = unNombre; }
void setRaza ( string unaRaza ) { suRaza = unaRaza; }
//Otros metodos
void ladrar(){ std::cout << "aroof roof!XD" << endl; }
//La parte privada de perro"No podemos acceder desde fuera de la clase"
private:
//Atributos
int suEdad;
int suPeso;
string suNombre;
string suRaza;
}; //Fin de la idea perro "Esta es la clase no el objeto"
int main () {
system ( "MODE CON cols=100 lines=50" );
//Ahora Creamos 2 objetos "Copias de la clase perro"
Perro miPerro; //Esto es un objeto creado apartir de la clase Perro, realmente es una copia de Perro
Perro otroPerro( 3, 7, "Rex", "Pitbull" ); //Esto es un objeto creado apartir de la clase Perro, realmente es una copia de Perro
// Como ves aun que llame a la funcion getNombre() en ambos casos dan resultados distintos, son copias de la
//clase Perro pero tienen sus propios datos, como no he pasado los datos a miPerro a tomado los datos del constructor por defecto
//que tambien tenia parametros por defecto.
cout << miPerro.getNombre() << endl;
cout << otroPerro.getNombre() << endl;
//Ponemos un nombre a miPerro
miPerro.setNombre("floriponcio");
cout << miPerro.getNombre() << endl;
miPerro.ladrar();
cin.ignore();
}
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. ;)