Desarrollo de videojuegos 1: arquitectura del motor de videojuegos (2ª edición)

Page 100

[82]

CAPÍTULO 3. C++. ASPECTOS ESENCIALES

Una buena regla para usar de manera adecuada el modificador inline consiste en evitar su uso hasta prácticamente completar el desarrollo de un proyecto. A continuación, se puede utilizar alguna herramienta de profiling para detectar si alguna función sencilla está entre las más utilidas. Este tipo de funciones son candidatas potenciales para modificarlas con inline y, en consecuencia, elementos para mejorar el rendimiento del programa.

Al igual que ocurre con otros tipos de datos, los objetos también se pueden manipular mediante punteros. Simplemente se ha de utilizar la misma notación y recordar que la aritmética de punteros también se puede usar con objetos que, por ejemplo, formen parte de un array. Para los objetos creados en memoria dinámica, el operador new invoca al constructor de la clase de manera que dichos objetos existen hasta que explícitamente se eliminen con el operador delete sobre los punteros asociados. A continuación se muestra un listado de código que hace uso de la clase Figura previamente introducida. Listado 3.12: Manipulación de objetos con punteros 1 2 3 4 5 6 7 8 9 10 11 12 13

#include <iostream> #include "Figura.h" using namespace std; int main () { Figura *f1; f1 = new Figura (1.0, 0.5); cout << "[" << f1->getX() << ", " << f1->getY() << "]" << endl; delete f1; return 0; }

3.2.2. Aspectos específicos de las clases En esta subsección se discutirán algunos aspectos de C++ relacionados con el concepto de clase que resultan muy útiles en una gran variedad de situaciones y pueden contribuir a mejorar la calidad y la mantenibilidad del código fuente generado por un desarrollador. En primer lugar, se discutirá el concepto de función amiga de una clase. Un función amiga de una o varias clases, especificada así con el modificador friend y sin ser una de sus funciones miembro, puede acceder a los miembros privados de la misma. Aunque en principio puede parecer que esta posibilidad no ofrece ninguna ventaja sobre una función miembro, en realidad sí que puede aportar beneficios desde el punto de vista del diseño. Por ejemplo, este tipo de funciones pueden ser útiles para sobrecargar ciertos tipos de operadores y pueden simplificar la creación de algunas funciones de entrada/salida.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.