Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Poo C++
Poo C++
Objetos en C++
ndice
1. Teora de la Orientacin a Objetos
2. Desarrollo de un proyecto OO
3. Ejercicios
Orientacin a Objetos
Introduccin
Programacin Orientada a Objetos (POO):
Modo de entender y clasificar el mundo
Simple e intuitivo
Escalable
Un concepto se define en trminos de:
qu tiene? campos
qu hace? mtodos
Clases y objetos
Clase: concepto abstracto
coche
Objeto: instancia del concepto
seat ibiza matrcula 43456-FWZ
Una clase puede tener mltiples instancias
(objetos)
aterrizar
despegar
Helicptero
Vehculo
aterrizaje vertical
depsito despegue vertical
velocidad
Vehculo
acelerar
terrestre
frenar
gasolina Tren
1..n Vagn
vagones
puertas
asientos
Vagn Vagn
Coche conductor pasajeros
puertas=1 puertas=2
asientos=2 asientos=20
Construir un proyecto
Construir un proyecto C++
Entorno de desarrollo
Eclipse IDE (Integrated Development
Environment)
plugin CDT (C/C++ Development Tooling)
Compilador de C/C++
Windows: MinGW o Cygwin
Linux: GCC (GNU C/C++ Compiler)
Ya instalado
Proyecto C++ en Eclipse
File > New > Project > C++ Project
Si no aparece en el men, buscar en Other
Project Name: el que queramos,
normalmente sin espacios
HelloWorld, cars, pruebaC
Toolchain: MinGW GCC o GCC
depende de la plataforma y requisitos
Aadir clases
Clic derecho en el nombre del proyecto en
el men de la izquierda (New > Class) o
botn New C++ class
Los nombres de clase siempre comienzan por
mayscula y sin espacios
Construir el proyecto
Project > Build Project
Detecta errores de compilacin
Errores sintcticos generalmente
Tutorial completo:
http://help.eclipse.org/stable/index.jsp?topic=/org.eclips
e.cdt.doc.user/getting_started/cdt_w_newproj.htm
Ejercicios
HelloWorld
Crear un proyecto en Eclipse+CDT
int main ()
{
// Say Hello five times
for (int index = 0; index < 5; ++index)
cout << "HelloWorld!" << endl;
exit(0);
}
Ejemplo: mi Coche
Un coche desde la filosofa OO
Qu tiene?
Fsico: puertas, motor, depsito
Abstracto: velocidad, aceleracin, consumo
Estado:
parado con una puerta abierta
a 120 Km/h con el depsito medio lleno
Qu hace?
Acelerar, abrir/cerrar puertas, repostar
Ejercicio 1
Crear una clase coche que tenga los siguientes
campos:
Matrcula, marca y modelo (pblicos)
Velocidad, velocidad mxima y aceleracin
Nmero de puertas
Generar los constructores y destructores
Crear un constructor que inicie los parmetros
Instanciar un objeto de la clase y mostrar por
pantalla sus atributos pblicos
Ejercicio 2
Controlar el estado de las puertas
Crear mtodos para abrir y cerrar puertas
Almacenar el estado de las puertas
(abiertas/cerradas)
Pistas:
usar array de bool (true=abierto)
usar constantes enteras para identificar las
puertas (MALETERO=0, DETRAS_IZQ=1, etc)
Ejercicio 3
Implementar el movimiento del coche:
Acelerar
Entrada: tiempo durante el que acelera
Efecto: v=min(at, vmax)
Frenar: anlogo a la aceleracin
Considerar que una vez en movimiento se
mantiene a velocidad constante
Comprobar que no acelere si hay puertas
abiertas
Ejercicio 4
Implementar el consumo del coche:
Aadir campos:
deposito y depositoMax
consumo (litros por kilmetro)
cuentaKilometros
Aadir mtodo repostar(float litros)
Aadir mtodo crucero(int segundos) que modifique:
depsito, cuentaKilometros
d=vt
Comprobar que funciona correctamente
repostar 20 litros
acelerar 10s
crucero 1000s
frenar 10s