Leí que las conversaciones pequeñas están completamente orientadas a objetos ... ¿C++ también está completamente orientado a objetos? si no ... ¿entonces por qué?¿C++ es un lenguaje completamente orientado a objetos?
Respuesta
No, no lo es. Puede escribir un programa de C++ válido, bien codificado y de excelente diseño sin utilizar un objeto ni siquiera una vez.
C++ admite programación orientada a objetos, pero OO no es intrínseco al lenguaje. De hecho, la función principal no es un miembro de un objeto.
En smalltalk o Java, no puede atarse los zapatos (o escribir "Hola, mundo") sin al menos una clase.
(Por supuesto, se puede argumentar sobre Java es un lenguaje completamente orientado a objetos también, porque sus primitivas (por ejemplo, int) no son objetos.)
Incluso tiene utilidades que lo convierten en un lenguaje de programación genérico , por ejemplo, Plantillas. Pero he visto muchos libros de texto a nivel escolar que asocia C++ como Lenguaje orientado a objetos. El problema es que cuando los autores lo hacen, los lectores (principalmente los estudiantes) olvidan convenientemente que C++ también se adapta a muchos tipos de lenguajes de programación. – sjsam
Define OOL. Si se refiere al uso de clases, etc., C++ admite el estilo de programación OO, entre otros. No hay nada que te impida no usar las clases. Java OTOH, no permite sino clases. (Sí, sé que Java admite FP.)
"Sí, sé que Java admite FP". Eso es nuevo para mí ¿Tienes algún ejemplo de FP en Java? –
Una búsqueda simple me da bastantes artículos. Uno de ellos:
dirk. Creo que puede querer decir que Java admite la programación ** procedural ** ¿Nordeste? –
C++ contiene un dialecto 'C' como subconjunto, lo que permite un estilo de código puramente de procedimiento.
C++ no es un lenguaje orientado a objetos puro, y como ya mencionado, nada te obliga a utilizar los conceptos de OOP en C++. C++ es lo que usted llama un lenguaje híbrido orientado a objetos, ya que está basado en C, que es puramente un lenguaje de procedimiento.
Ejemplos de lenguajes orientados a objetos puros son C# y JAVA.
Ninguno de los cuales es primitivo ya que los tipos de datos no obedecen a la misma semántica que los tipos de datos definidos por el usuario. Las operaciones en ellos no se definen en términos de pasar mensajes y no se pueden sobrecargar o redefinir en una clase derivada. – Omnifarious
Creo que ha comentado la publicación incorrecta. ;) –
No, Omni dice que ni C# ni Java son OO puros, ya que tienen cosas como int y long que son * no * objetos. – paxdiablo
No, no es un lenguaje puramente orientado a objetos. En particular, los tipos de datos primitivos en C++ tienen reglas que con frecuencia son diferentes de los tipos de datos que no son primitivos. Además, es posible tener funciones que no estén asociadas a ningún tipo de datos. Hay una miríada de otras formas en que C++ no es un lenguaje orientado a objetos puro, pero esas son dos de las principales razones.
Ni Java ni C# son lenguajes orientados a objetos puros ya sea porque tienen tipos de datos primitivos que no obedecen a la misma semántica que los tipos de datos 'objeto'.
La respuesta corta es no - C++ no es del todo lenguaje OO. Puede escribir OOP "no exactamente" usando C++ incluso sin recurrir al uso del subconjunto C. Uno de esos ejemplos es su método principal, que no está incluido en ninguna clase.
La razón principal es el hecho de que C++ se originó a partir de C, cuando Stroustrup creó el lenguaje que pretendía crear una nueva versión de C (con clases). de hecho, ha intentado presentar su creación como el nuevo sabor de C (C84).
Los grandes argumentos que tiene la gente en contra de declarar C++ como "puro" OO es que todavía requiere al menos uno bits no OO, main()
, y que no todo es un objeto (int
, long
et al).
También expone el estado de un objeto para su manipulación sin utilizar el paradigma de paso de mensajes (miembros públicos). Esto rompe la encapsulación de objetos.
Java, por otro lado, tiene main()
como un método estático de una clase, por lo que está más cerca pero todavía tiene cosas que no son objetos.
Smalltalk es la lingua franca normalmente considerada como la más pura de las puras, pero no sé lo suficiente sobre ella como para comentar.
Me, Me tienden a dejar esa clase de argumentos para la intelectualidad, mientras que seguir con el desarrollo de código y entregar a mis clientes :-)
Realmente no necesita principal. Es solo un punto de entrada bien conocido, por lo que la línea de comandos y (algunas) GUI no tienen a dónde pasar el control después de la carga. –
* necesita * main, es obligatorio según el estándar. – paxdiablo
por supuesto que no !! Admite tipos de datos intrínsecos.
C++ no es más que "C con clases". Todavía puedo escribir un programa C y guardarlo como archivo .cpp. Por lo tanto, Prueba por implicación dice "C++ no es un lenguaje puramente orientado a objetos".
- 1. ¿El rubí es realmente un lenguaje completamente orientado a objetos?
- 2. ¿C++ es un lenguaje orientado a objetos?
- 3. ¿Es C# un lenguaje de programación orientado a objetos 100%?
- 4. C como un lenguaje orientado a objetos
- 5. ¿Cómo está Ruby completamente orientado a objetos?
- 6. Buscando un lenguaje orientado a objetos puros
- 7. ¿Cuál es la diferencia entre un lenguaje orientado a componentes y orientado a objetos?
- 8. ¿Está el lenguaje de programación C orientado a objetos?
- 9. ¿Qué hace que un lenguaje sea orientado a objetos?
- 10. experimento: orientado a objetos C?
- 11. C para un programador orientado a objetos
- 12. ¿Por qué Python no está completamente orientado a objetos?
- 13. HAS-A, terminología IS-A en lenguaje orientado a objetos
- 14. ¿Está Erlang orientado a objetos?
- 15. Javascript orientado a objetos
- 16. Programando un gráfico orientado a objetos simple en C++
- 17. Paradigma orientado a objetos Pregunta
- 18. ¿Está MongoDB orientado a objetos?
- 19. Diseño orientado a objetos Entrevista
- 20. ¿Cambió Python a más orientado a objetos?
- 21. Problema de diseño orientado a objetos
- 22. ¿Cuándo está orientado a objetos no es la solución correcta?
- 23. Pregunta de diseño orientado a objetos
- 24. Suicidio orientado a objetos o eliminar esto;
- 25. ¿Mi código PHP está orientado a objetos?
- 26. Filtrado de Spam Bayesiano Orientado a Objetos?
- 27. usando jQuery en modo orientado a objetos
- 28. Diseño orientado a objetos con Ruby
- 29. Sintaxis del constructor Perl orientado a objetos
- 30. PHP ¿Está orientado a objetos o no?
'pequeña charla que está completamente orientada a objetos', ¿de dónde leíste esto? Sólo curioso. –
¿Qué significa "completamente"? –
¿Qué hay de Ruby? – ukanth