Programación General > C/C++
Conecta 4 c++
•Parra:
--- Cita de: "m0skit0" ---
--- Cita de: "•Parra" ---Si estás programando en C++, quizás sea un poco más complicado que hacerlo en C, en C, para los principiantes suele ser facil.
--- Fin de la cita ---
Bueno, es cuestión de entender mínimamente la POO. En cuanto se entiende, es más fácil, más estructurado y más limpio en C++.
--- Fin de la cita ---
Eso si, pero al que le han empezado enseñado a programar en estructurado, cambiar el chip y pensar en objetos, no es facil.
m0skit0:
--- Cita de: "m0skit0" ---En cuanto se entiende
--- Fin de la cita ---
Amilius:
Si programas en C++ no es obligatorio usar clases. Además existe la posibilidad de evitar complicaciones innecesarias y código menos legible al poder pasar parámetros por referencia/alias. Además que usar el par new/delete tiene la ventaja de hacer el código más breve: no es necesario un casting extra para new, y delete puede ser llamado sin necesidad de verificar el puntero. Si el puntero es 0 delete no realiza ninguna operación. (En todo caso siempre es necesario inicializar los punteros a 0. También es necesario poner a 0 los punteros ya liberados si existe riesgo que puedan ser nuevamente liberados.).
Otras ventajas que no implican directamente POO:
- No tienes que definir todas tus variables al inicio de tus funciones.
- Puedes usar templates en lugar de macros de preprocesador para operar con tipos genéricos.
- Sobrecarga de operadores y funciones.
Respecto a que es "difícil cambiar el chip" para pasar de estructurado a objetos es más un problema de enseñanza. Se debe usar objetos sólo cuando conviene usar objetos. No estoy para nada de acuerdo con los puristas que quieren meter objetos a todo lo que ven, son iguales a los que quieren meter patrones de diseño hasta para un "hello world".
Creo que la forma correcta de pasar de estructurado a objeto es mostrar un ejemplo más complejo, donde sea evidente las ventajas de pasar de estructurado a objetos. Es cuestión de convencer al alumno que POO les puede simplificar el trabajo en lugar de complicarlo. Luego para explicar a detalle recién se debería utilizar los ejemplos sencillos para cada aspecto de POO.
m0skit0:
Buf, realmente no quiero convertir esto en un hilo de discusión C vs C++... Cada lenguaje tiene su propósito y su utilidad (yo siempre he sido más de C).
--- Cita de: "Amilius" ---Si programas en C++ no es obligatorio usar clases.
--- Fin de la cita ---
Eso no es C++.
Amilius:
--- Cita de: "m0skit0" ---Eso no es C++.
--- Fin de la cita ---
Claro que si es. ¿O crees que es condición suficiente no usar clases para utilizar un compilador de C? Basta que uses al menos una característica introducida en C++ y ya no podrás usar un compilador que sólo soporte C. Por lo tanto es evidente que es código C++ aunque no utilices clases.
En todo caso lo correcto es decir "Eso no es POO", que es muy distinto. Y por cierto si tienes conocimientos de la implementación de los mecanismos de POO es posible programar orientado a objectos usando sólo C.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa