Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/03/2016, 11:44
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Interface c++ (clases abstractas)

Como siempre, excelente respuesta de eferion.

Sólo quisiera agregar algo importante.

Si estas intentanto entender las interfaces viendo código, no le vas a encontrar mucho sentido al principio. Te recomiendo que ivestigues un poco sobre la teoría de la programación orientada a objetos.
Como que al principio creemos que las clases son un conjunto de variables y métodos. En código así se ven. Pero en la teoría está el concepto de encapsulación. Encapsular objetos que tienen estado y una interfaz pública.

Existen otros tipos de conceptos derivados de la herencia entre clases. Cosas como agregación, composición y herencia. Herencia por generalización, herencia por especialización, etc. En código, todas se ven iguales, pero para sacarles provecho hay que saber cual es el transfondo.

En el caso de las clases abstractas, también llamadas interfaces, igual es mas un concepto que algo visible en el código. Como dice eferion, es una especie de contrato entre el diseñador de la clase y el que la implementa. Esto tiene un sin número de ventajas y aplicaciones. Pero para poder ver esas ventajas, es necesario conocer la teoría.

Muy personalmente, el libro de Timothy Budd sobre programación orientada a objetos, es lo mejor que he leido acerca del tema.

Una vez que tengas mas claros los conceptos, hay otro nivel. Los patrones de diseño. Usan toda la teoria de la POO y exprimen sus beneficios al máximo.

En fin, es todo un tema, no es sencillo, pero es muy interesante.

Saludos