Volver a programar

Iniciado por apoeti, 3 Julio 2013, 16:24 PM

0 Miembros y 1 Visitante están viendo este tema.

eferion

Aprender a montar en coche no es saber encenderlo y meter primera... hay que dominar muchos más aspectos para poder decir que alguien sabe conducir.

Para aprender a programar en c++ tienes que aprender no solo a manejar la stl, sino también cómo funciona el concepto de clase, qué es el polimorfismo y cómo se explota, como funciona la herencia, de qué formas se pueden sobrecargar operadores, implicaciones del constructor copia y del operador de asignación, responsabilidad de los destructores...

Si te limitas a manejar la stl y todo con lenguaje procedural no estás programando en c++.

daryo

Cita de: eferion en  4 Julio 2013, 15:04 PM
...
bueno no le puedes decir a un novato que empieze por ahi xD , es como aprender c iniciandose por sockets. entiendo lo que quieres decir pero  no hace falta manejar esos conceptos para iniciarse en c++

(que sigo diciendo es mas facil iniciarse por ahi que por c claro es mi opinion solamente)
buenas

eferion

Cita de: daryo en  4 Julio 2013, 15:09 PM
bueno no le puedes decir a un novato que empieze por ahi xD , es como aprender c iniciandose por sockets. entiendo lo que quieres decir pero  no hace falta manejar esos conceptos para iniciarse en c++

Eso lo entiendo, pero claro, uno que está empezando no puede decir que sabe programar.

Hasta que no controla un mínimo todas esas cosas... que son conceptos clave del lenguaje no puede decir que sabe programar en c++.

Me baso simplemente en esto para decir que aprender c++ es más difícil que aprender c

daryo

Cita de: eferion en  4 Julio 2013, 15:11 PM
Eso lo entiendo, pero claro, uno que está empezando no puede decir que sabe programar.

Hasta que no controla un mínimo todas esas cosas... que son conceptos clave del lenguaje no puede decir que sabe programar en c++.

Me baso simplemente en esto para decir que aprender c++ es más difícil que aprender c
claro tiene mas conceptos y es mas flexible  y seria otra razon para escoger c++ ademas de que es mas sencillo al comienzo :)
buenas

eferion

Cita de: daryo en  4 Julio 2013, 15:13 PM
claro tiene mas conceptos y es mas flexible  y seria otra razon para escoger c++ ademas de que es mas sencillo al comienzo :)

Aún así... si alguien me dice que aprende más rápido c++ que c es porque no está aprendiendo lo que sucede por debajo cuando alguien crea una clase.

Esto se ve con facilidad cuando muchos no entienden que sea más óptimo pasar una clase a una función una referencia constante en vez de por valor.

C++ tiene muchísimas más cosas que C y para comprenderlos al mismo nivel el esfuerzo a realizar en c es siempre inferior.

Vale que manejar arrays de tipo char para las cadenas es algo confuso al principio... pero debe ser lo único... con c++ seguro que podemos sacar muuuchas más cosas.

Vuelvo al ejemplo, si alguien dice que sabe usar clases de c++ pero no sabe la diferencia entre un constructor copia y un operador de asignación... no sabe usarlas y, en el mejor de los casos, hará un uso incorrecto e inadecuado de ambos por mero desconocimiento.

Creo que es peligroso que alguien crea que controla sobre algún tema cuando realmente solo ha alcanzado a arañar la superficie.

amchacon

Hemos dicho no orientarlo a objetos, ergo no vamos a usar clases y no tenemos polimorfismo.

Yo creo que es más fácil por la librería estándar y esque cin -> scanf y cout -> printf. No tendrá tampoco que pelear con los caracteres, porque podrá usar strings. Para array dinámicos tiene la clase vector.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

OmarHack

#16
El mismo programa creado en c y en c++ usándolos a ambos de la misma manera será mucho más fácil de hacer en c++.

En C++ si no quieres crear clases pues no las creas, las clases simplemente está para ahorrarte un poco de trabajo y que el código sea más legible.

Al fin y al cabo si voy a usar 20 cadenas no necesito conocer para nada las clases, ahora, que si quiero optmizar el código, tenerlo ordenado, etc pues lo haré con clases. Es como si ahora tuvieras en c la librería "clasesdeCpp.h" si te apetece usarla la usas y si no, no. Conocer el lenguaje en profundidad no implica que tengas que conocer todas las librerías, sería imposible, tanto en c como en c++.

C++ básicamente viene siendo una extensión/remodelación de c. Nada te impide usar código en c en un programa en c++ y compilarlo, así que solo son ventajas.

En algo tan simple como el printf o el scanf tienes que especificar el dato de salida y entrada, es decir declarar de que tipo es la variable (en el scanf y en el printf). En c++ no.

Sin conocer profundamente ambos lenguajes, esos detalles son los que me hacen pensar que lo que quisieron hacer es mejorar C y hacerlo más sencillo a la vez sin perder control sobre el mismo, y bajo mi inexperta opinión lo consiguieron.  

I like to test things.

daryo

Cita de: amchacon en  4 Julio 2013, 16:07 PM
Hemos dicho no orientarlo a objetos, ergo no vamos a usar clases y no tenemos polimorfismo.

Yo creo que es más fácil por la librería estándar y esque cin -> scanf y cout -> printf. No tendrá tampoco que pelear con los caracteres, porque podrá usar strings. Para array dinámicos tiene la clase vector.
es lo mismo que yo dije
buenas

eferion

Cita de: OmarHack en  4 Julio 2013, 17:02 PM
Sin conocer profundamente ambos lenguajes, esos detalles son los que me hacen pensar que lo que quisieron hacer es mejorar C y hacerlo más sencillo a la vez sin perder control sobre el mismo, y bajo mi inexperta opinión lo consiguieron.  

... por eso se llama c++ ( c = c + 1 ) ;)

apoeti

Bueno, pues me estáis haciendo un lío xDDD Ahora no sé si seguir aprendiendo C o empezar con C++ :S
Aclaro que en C solo me falta aprender algunos conceptos más avanzados como los sockets y repasar los que ya sabía. Y, por supuesto, mucha práctica.