10.07.2015 Views

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

[ebook]Programacion de videojuegos con SDL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ApéndiceBDe C a C++Que tengas este libro entre tus manos, significa que tienes unos <strong>con</strong>ocimientosmínimamente razonables <strong>de</strong> programación. Probablemente estarás familiarizado<strong>con</strong> el lenguaje C. En el presente capítulo voy a tratar <strong>de</strong> hacer una introduccióna la programación orientada a objetos en C++. Evi<strong>de</strong>ntemente, para hacer unabuena introducción necesitaríamos todo un libro. En la bibliografía hay algunosmuy buenos que te servirán para profundizar. El objetivo, pues, <strong>de</strong> este apéndice esacercar la POO en C++ a los programadores <strong>con</strong> <strong>con</strong>ocimientos previos <strong>de</strong> C. Noscentraremos en los aspectos más relevantes y, <strong>de</strong>sgraciadamente, por la extensiónlimitada <strong>de</strong> la presente obra, <strong>de</strong>jaremos <strong>de</strong> lado las características más complejas omenos útiles <strong>de</strong> este lenguaje. Ni que <strong>de</strong>cir tiene que si ya eres un experto en C++,pue<strong>de</strong> prescindir alegremente este apéndice.Pue<strong>de</strong> que en estos momentos te estés preguntando si es realmente necesario utilizarC++ y si C no es suficiente. Rotundamente sí. Pue<strong>de</strong>s acometer el <strong>de</strong>sarrollo <strong>de</strong> juegosrazonablemente complejos en C, sin embargo, la POO nos aporta ciertamente una serie<strong>de</strong> ventajas que hemos <strong>de</strong> tener muy en cuenta a la hora <strong>de</strong> sentarnos a programar,como:• Una mayor abstracción <strong>de</strong> datos.• Más facilidad para la reutilización <strong>de</strong> código.• Mantenimiento y extensión <strong>de</strong> las aplicaciones más fácil.• Mayor potencia (herencia y polimorfismo).• Mo<strong>de</strong>lado <strong>de</strong> problemas reales <strong>de</strong> forma más directa.Quizás todo esto te suene un poco ajeno a la forma a la que estás acostumbrado aprogramar, e incluso pue<strong>de</strong> que ni te suenen algunos <strong>de</strong> estos <strong>con</strong>ceptos, pero al finalizar elcapítulo, <strong>de</strong>berán serte familiares.Todo esto suena bien, pero ¿qué es un objeto? Trataré, sin entrar en <strong>de</strong>masiadosformalismos, explicarlo <strong>de</strong> la forma más intuitiva posible. Si te pido que pienses en un objeto,seguramente pensarás en un lápiz, una mesa, unas gafas <strong>de</strong> sol, un coche o cualquier otracosa que caiga <strong>de</strong>ntro <strong>de</strong> tu radio <strong>de</strong> visión. Esta es la i<strong>de</strong>a intuitiva <strong>de</strong> objeto. Algo físico ymaterial. En POO, el <strong>con</strong>cepto <strong>de</strong> objeto no es muy diferente. Una <strong>de</strong> las diferencias básicasevi<strong>de</strong>ntes es que un objeto en C++ pue<strong>de</strong> hacer referencia a algo abstracto.Como en el ejemplo <strong>de</strong>l coche, un objeto pue<strong>de</strong> estar compuesto por otra clase <strong>de</strong> objetos,como ruedas, carrocería, etc... Este <strong>con</strong>cepto <strong>de</strong> clase <strong>de</strong> objeto es importante. Un objetosiempre pertenece a una clase <strong>de</strong> objetos. Por ejemplo, todas las ruedas, <strong>con</strong> in<strong>de</strong>pen<strong>de</strong>ncia<strong>de</strong> su tamaño, pertenecen a la clase “rueda”. Hay muchos objetos rueda diferente quepertenecen a la clase rueda. Cada una <strong>de</strong> estas ruedas diferentes se llaman instancias <strong>de</strong> laclase “rueda”. Tenemos, pues, instancias <strong>de</strong> la clase rueda que son ruedas <strong>de</strong> camión, ruedas<strong>de</strong> coches o ruedas <strong>de</strong> moto.143

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!