Hace poco tuve un problema en el que la concurrencia era fundamental para realizar la tarea en el mínimo tiempo posible, y decidí darle una oportunidad a C++11 y a algunas de sus nuevas características (todo esto ya lo podíamos hacer con las bibliotecas Boost por ejemplo, pero da alegría poder hacer muchas cosas desde std 🙂
Aprovechando mi experiencia he decidido poner un pequeño ejemplo de cómo realizar una aplicación concurrente en esta revisión de C++, cosa que veo la tarea más fácil del mundo y, por supuesto nos beneficiará a todos a la hora de buscar el paralelismo.… Leer artículo completo
Otra de las características que dan a C++ mucha más flexibilidad son los punteros a miembro. Éstos nos permiten trabajar con elementos que podemos encontrar dentro de una clase, un struct o una union. Y el mejor ejemplo lo encontramos a la hora de hacer callbacks, si repasamos los callbacks en C inmediatamente veremos que en un lenguaje orientado a objetos necesitamos poder acceder a métodos dentro de una clase. Si hacemos un ejemplo parecido al de aquel post, podemos demostrar que la misma manera podemos acceder a métodos estáticos dentro de la clase:
/* DECLARACIÓN DE LLAMADORA */ void generaecos(funcion_callback func) { int num; cout<<"Voy a llamar al eco con el texto HOLA"<< endl; num=func((char*)"HOLA"); cout<<"La he llamado y me ha devuelto: "<< num << endl; }
int main() { generaecos(MyClass::eco); }
Pero cuando queremos llamar a un método no estático de la clase fallará sin miramientos, ya que necesitaríamos la información del objeto en el que se encuentra el método, y de esta forma estaríamos pasando directamente una dirección de memoria (al ejecutar la función no encontraría el puntero this, entre otras cosas).… Leer artículo completo
Los interfaces son bastante comunes en la programación orientada a objetos, en PHP, son algo así como una declaración de lo que debe implementar una clase. Tendrá información de los métodos (exclusivamente) que se deben implementar.
Las clases abstractas contienen atributos y métodos, algunos pueden estar implementados y otros pueden ser abstractos. Los métodos abstractos son aquellos que no están implementados. Como tienen métodos sin implementar no podemos crear una instancia de este tipo de clases; entonces, ¿ para qué valen ?… Leer artículo completo
Si te ha gustado el sitio, te ha resultado útil o simplemente quieres colaborar con el sitio para que siga compartiendo contenidos, invítame a un café, una pizza, una ensalada, o lo que se te ocurra.Te lo agradeceré eternamente :)
¡Atención! Este sitio utiliza cookies propias y de terceros para mejorar la experiencia de usuario, Si continúa la navegación en el sitio, asumo que estás de acuerdo con esto, aunque siempre puedes desactivar las cookies en tu navegador. AceptarLeer más
Últimos comentarios