Publi

  • Enlazado dinámico en C++ (dynamic linking) IV: Permitir plug-ins en nuestra aplicación

    Un ejemplo práctico de uso del enlazado dinámico es la posibilidad de crear plug-ins para nuestros programas. Estos plug-ins nos permitirán aumentar las funcionalidades de nuestro programa sin necesidad de recompilarlo, utilizando el código de añadidos binarios. Para poder «hablar» con los demás binarios, es necesario haber establecido antes unas normas para ese diálogo.

    Intentaré poner un ejemplo más o menos completo, pero sencillo, y se podrá descargar el código fuente al final del artículo (serán bastantes archivos).… Leer artículo completo

  • Destructores virtuales en C++

    papel destruido

    Muchas veces, cuando leemos código de otras personas, hemos visto destructores declarados como virtual en algunas clases. Es una de esas cosas que si hacemos siempre no pasa nada, pero si no hacemos nunca, en ocasiones nos llevamos sorpresas; pero muchos desarrolladores optan por poner sólo en los casos justos.

    ¿ Para qué valían los métodos virtual ?

    Eso está en un post anterior, pero básicamente valen para que las subclases tengan un método propio que se llame de la misma forma que el método declarado como virtual.… Leer artículo completo

  • Iniciación a los memory leaks [ejemplos en C++]

    leak

    Hablemos de un fenómeno que nos afecta, sobre todo en desarrollos que están en ejecución durante mucho tiempo, pero , y es que, debido a la mala gestión de la memoria podemos llegar a consumir más de lo necesario y podemos volver loco al sistema operativo utilizando la memoria virtual para darnos el espacio que necesitamos.

    Los memory leaks son fugas de memoria debidas a que hemos pedido un cierto espacio de memoria durante la ejecución de nuestro programa, la hemos usado y cuando hemos dejado de usarla, no la hemos liberado, por tanto estamos ocupando más de lo que necesitamos y acaparando recursos; un ejemplo de esto son esos procesos o programas que tenemos arrancados durante varios días, y cuanto más tiempo llevan arrancados más memoria ocupan (a veces es necesario, pero otras veces, la mayoría, no).… Leer artículo completo

  • Memoria dinámica con Arduino en C++

    Uno de los problemas al programar en C++ con Arduino es la utilización de memoria dinámica. Podemos comprobar que el uso de malloc / realloc / free está soportado, pero no new y delete.

    La ventaja, en Arduino, para utilizar new y delete es que éstos llaman al constructor y al destructor respectivamente, lo cual nos permite poder crear objetos de forma dinámica.

    Para crear los operadores new y delete, he utilizado malloc() y free(), lo malo es que no hacemos comprobación de errores, por lo que, cuando falle algo, los resultados serán inesperados, aunque podremos crear alguna función que detenga la ejecución del programa cuando ocurra algún error.… Leer artículo completo