- C no está orientado a objetos en sentido estricto ya que no tiene una capacidad orientada a objetos compatible con sintaxis incorporada como clase, herencia, etc.
Pero si conoce el truco, puede agregar fácilmente la función orientada a objetos simplemente utilizando struct, puntero a la función, & auto puntero. DirectFB es una biblioteca de C escrita de forma orientada a objetos. Lo malo es que es más propenso a errores ya que no se rige por la sintaxis y la comprobación del tipo de compilación. Se basa en la convención de codificación en su lugar.
p. Ej.
IDirectFB/*a typedef of a struct*/ *dfb = NULL;
IDirectFBSurface/*another typedef of a struct*/ *primary = NULL;
DirectFBCreate (&dfb); /*factory method to create a struct (e.g. dfb) with
pointers to function and data. This struct is
like an object/instance of a class in a language with build-in
syntax support for object oriented capability */
dfb->SetCooperativeLevel/*function pointer*/
(dfb/*self pointer to the object dfb*/,
DFSCL_FULLSCREEN);
dsc.flags = DSDESC_CAPS;
dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING;
dfb->CreateSurface/*function pointer, also a factory method
to create another object/instance */
(dfb/*self pointer to the object dfb*/,
&dsc,
&primary/*another struct work as object of another class created*/);
primary->GetSize/*function pointer*/
(primary/*self pointer to the object primary*/,
&screen_width,
&screen_height);
2. C++ está orientado a objetos, ya que tiene soporte integrado para capacidades orientadas a objetos como clase y herencia. Pero existe el argumento de que no es un lenguaje orientado a objetos completo o puro, ya que permite la sintaxis C (sintaxis de programación estructural) en él. También recuerdo que C++ carece de algunas capacidades orientadas a objetos, pero no recuerda exactamente cada una.
Haga que todos estén de acuerdo en una definición de Object Oriented y, a continuación, podré responder a la pregunta. – Yacoby
Programación orientada a objetos (OOP) es un paradigma de programación que utiliza "objetos" (estructuras de datos que consisten en campos de datos y métodos junto con sus interacciones) para diseñar aplicaciones y programas de computadora. Las técnicas de programación pueden incluir características tales como abstracción de datos, encapsulación, modularidad, polimorfismo y herencia. No se usó comúnmente en el desarrollo de aplicaciones de software convencional hasta principios de la década de 1990. [cita requerida] Muchos lenguajes de programación modernos ahora admiten OOP. –
Esa es solo una definición. Tengo que amar el '[cita requerida]' por cierto;) –