Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: stivinsung en 25 Mayo 2016, 16:15 pm



Título: Programacion orientada a objetos en c++
Publicado por: stivinsung en 25 Mayo 2016, 16:15 pm
Necesito su ayuda porfavor, para saber como identificar objetos de cualquier problema de la vida real, y a su vez una explicacion de que son las clases abstractas, clases virtuales,clases virtuales puras, polimorfismo estatico y dinamico, plantillas (templates), si pudieran ayudarme a entender todo sobre programacion orientada a objetos en c++


Título: Re: Programacion orientada a objetos en c++
Publicado por: AlbertoBSD en 25 Mayo 2016, 17:53 pm
Pues realmente estas pidiendo toda una clase de programacion Orientada a Objetos :P la forma de abstraer puede ser sencilla solo tienes que imaginar como podrias representar un objeto y abstraerlo Por ejemplo aqui en frente de mi tengo un taza de cafe, podriamos tener una Clase del tipo Taza... que no es mucho pero podria tener propiedades como color, material. Y metodos como servir o llenar y tomar Etc...

Realmente no es dificil pero creo que deberias de tratar de hacer preguntas mas especificas.

Saludos!


Título: Re: Programacion orientada a objetos en c++
Publicado por: Orubatosu en 25 Mayo 2016, 20:35 pm
La POO o "Programación Orientada al Objeto" es un paradigma de programación completo.

Lo que pides es poco menos que decir "quiero que me expliqueis como programar en C en pocas líneas"

Pero intentemos algo.... en la POO un objeto es simplemente un nuevo "tipo" de dato que creas ajustado a tus necesidades.

Ese dato puede tener informaciones de todo tipo. Como el ejemplo de la taza que te indican puede ser su capacidad, color, peso.

Eso sería una clase.

Esta clase puede incluir métodos, que para entendernos son acciones que puede realizar el objeto.
Por ejemplo devolvernos informaciones sobre el mismo (si peso, su capacidad), establecerlas y cambiarlas, o ejecutar acciones como llenarla, vaciarla, etc.

Si necesitas trabajar con 100 tazas diferentes, creas la clase "taza", y sobre esa clase creas objetos de ese tipo a los que asignas las características propias de esa clase y trabajas con cada una de ellas usando los métodos que tienen.

Luego la cosa se puede complicar porque una clase puede tener subclases, heredar métodos y bastante parafernalia. Hay mucha "chicha" en ese punto. Por ejemplo las clases taza, vaso, botella, etc... pueden ser clases "hijas" de una clase superior que sea "contenedores de bebidas" que tenga métodos y propiedades comunes a las demas. Las clases hijas heredan eso, pero las variables y métodos que tengan ellas no se heredan de hija a madre. Luego tienes el tema de permisos, de partes publicas y privadas de las clases, etc.

El polimorfismo es que un método pueda aplicarse a clases diferentes. Podemos tener una clase taza, una clase vaso, una clase botella... y que existe un método que devuelva (por ejemplo) la capacidad de cada uno. El polimorfismo permite que puedas usar el mismo nombre de método para todas esas clases. El compilador "se las apañará" (y ese tema es complejo) de que en cada caso se llame al método correspondiente a la clase de ese objeto.

Esto generalizando mucho. El tema es muy muy amplio, mejor buscas un libro, tutorial "gordo" o algo por el estilo.


Título: Re: Programacion orientada a objetos en c++
Publicado por: HardForo en 25 Mayo 2016, 20:44 pm
- Lee sobre POO en cualquier lenguaje
- UML
- Sobre POO en C++

:)


Título: Re: Programacion orientada a objetos en c++
Publicado por: stivinsung en 26 Mayo 2016, 17:13 pm
gracias por sus respuestas :-*