¿Es necesario saber C para aprender C++?

Estoy interesado en aprender c++, porque veo que es muy util, por ser multiplataforma, etc. Pero no sé muy bien por donde empezar.

¿Se puede aprender C++ desde 0 sin antes haber visto C?
¿algún pdf para principiantes xD?
matuanime escribió:Estoy interesado en aprender c++, porque veo que es muy util, por ser multiplataforma, etc. Pero no sé muy bien por donde empezar.

¿Se puede aprender C++ desde 0 sin antes haber visto C?
¿algún pdf para principiantes xD?


Los lenguajes no son realmente multiplataforma. Lo son los programas que escribas.

Un programa escrito en C para linux no funcionará en Windows, a pesar de existir compiladores de C para Windows.

Y con respecto a tu pregunta: C es un lenguaje procedimental y C++ es Orientado a Objetos. Son dos paradigmas diferentes de programación.

Yo te recomendaría que si no sabes programar, aprendieses primero lo básico en C, y luego te metieras con C++ o Java.

Y recuerda que no existe un lenguaje que sirva para todo: Tienes que elegir el lenguaje adecuado a lo que quieras hacer.
No es necesario, de hecho creo que es mejor que empieces por C++, que es un poquito más amigable que C.

Moki_X escribió:Un programa escrito en C para linux no funcionará en Windows, a pesar de existir compiladores de C para Windows.

O si, ese ejemplo no es muy adecuado.

Creo que es más correcto decir: "podría no funcionar en windows".
Moki_X escribió:
matuanime escribió:Estoy interesado en aprender c++, porque veo que es muy util, por ser multiplataforma, etc. Pero no sé muy bien por donde empezar.

¿Se puede aprender C++ desde 0 sin antes haber visto C?
¿algún pdf para principiantes xD?


Los lenguajes no son realmente multiplataforma. Lo son los programas que escribas.

1º Un programa escrito en C para linux no funcionará en Windows, a pesar de existir compiladores de C para Windows.

2º Y con respecto a tu pregunta: C es un lenguaje procedimental y C++ es Orientado a Objetos. Son dos paradigmas diferentes de programación.

3º Yo te recomendaría que si no sabes programar, aprendieses primero lo básico en C, y luego te metieras con C++ o Java.

4º Y recuerda que no existe un lenguaje que sirva para todo: Tienes que elegir el lenguaje adecuado a lo que quieras hacer.


1º Falso, un programa escrito en C en Linux si que te funcionará en Windows, solo tienes que compilar tu código de nuevo y listo, obtendrás el ejecutable .exe

2º Falso, C++ no es un un lenguaje Orientado a Objetos, es un lenguaje multiparadigma. Todo lo que puedes hacer en C lo puedes hacer en C++ y mejor. C es un subconjunto de C++, incluso puedes hacer un programa con al sintacxis de C con el lenguaje C++ y compilarlo con un compilador de C++, que te va a salir un programa correcto y funcione, ya que C++ está hecho para que la compatibilidad se mantenga.

3º Yo también te lo recomendaría,C++ es un lenguaje muy extenso con muchas "pijerías" no es como Java, que 3 conceptos básicos que tengas y con la API vas que chutas. Si quieres aprender a programar y orientado a objetos, yo te recomendaría que empezaras con Java.

4º Lo mismo, C++ sirve para todo, para mí sin duda es el mejor lenguaje, pero realmente no hay un lenguaje TOP, si no que el lenguaje que quieras utilizar se elije en base a tus necesidades. Por ejemplo, para la concurrencia, puedes usar C++, pero java es mejor.

Tutoríales hay una infinidad igual que cursos online, solo tienes que busca en san google.

PD: En definitiva, por contestar a tu pregunta, no es necesario aprender C, para aprender C++, pero si es bastante recomendable, aparte de que, como las cosas de C++ son una evolución lógica de C, te resultará muchísimo mas fácil.
C++ es C con más cosas.
No hace falta que aprendas C primero, puedes ir directamente a por C++, pues realmente son lo mismo salvo que C++ añade algo más de sintaxis y bibliotecas estándares.

Un programa en C++ será multiplataforma si al programarlo usas bibliotecas comunes en ambos sistemas operativos. Normalmente con un poco de cuidado debería compilar en ambos SO sin problema, o como mucho, tendrías que hacer algún cambio menor como cambiar algún include
No, al contrario. Lo mejor que puedes hacer es empezar con C++11 y olvidarte de C (si es que solo vas a aprender C++) ya que la forma de programar en C crea muy malos hábitos en C++. C++ moderno es un lenguaje muy distinto a C.

Unos buenos libros para empezar serian The C++ Programming Language, 4th Edition (Stroustrup) y luego Effective Modern C++ (Meyers). Este último es algo mas avanzado pero le saca el mejor provecho a C++11/C++14.
Muchas gracias a todos por responder :)

Con lo de multiplataforma, me refería que el lenguaje en si se usa tanto en pc como en consolas, no que el código que uno escriba sea universal xD
creo que me he expresado mal [+risas]

amchacon escribió:Creo que es más correcto decir: "podría no funcionar en windows".
Gringo Alpha escribió:1º Falso, un programa escrito en C en Linux si que te funcionará en Windows, solo tienes que compilar tu código de nuevo y listo, obtendrás el ejecutable .exe

Esto la verdad es que no lo sabia, pensaba que habria que reescribir el codigo entero para pasar de windows a linux y viseversa [+risas]

codestation escribió:Unos buenos libros para empezar serian The C++ Programming Language, 4th Edition (Stroustrup) y luego Effective Modern C++ (Meyers). Este último es algo mas avanzado pero le saca el mejor provecho a C++11/C++14.

Muchas gracias por los libros, mas de 1000 paginas el primero! :O
Una pena que yo en ingles entienda la imitad de las cosas aunque hare el esfuerzo por seguirle el paso [tomaaa]

Encontré el libro "Introducción a la programación C" de Andrés Marzal e Isabel Gracia que comienza con comparaciones de código con python, lo cual creo que me viene perfecto ya que python si lo manejo xD
No profundizaré demasiado en C pero ya que es parte del mismo lenguaje no creo que haga mucho mal XD

De c++ si que encuentro muy poco en español. La mayoría de pdf que veo son del año 95, 98, y apuntes que no enseñan mucho ._.
No sé si libros tan antiguos tengan valides actualmente...

si sabéis de libros c++ en español recomendádmelo que cualquier recomendación me sirve!

edit:
He encontrado el libro "Como programar c++" de Deitel... mas de mil paginas y en español. este es edición 2008, espero este me sirva xD
C es más potente que C++ a bajo nivel. C es un lenguaje muy sencillo de aprender, C++ cambia muchas cosas y otras las añade nuevas, así que depende del uso que le quieras dar.

Así que en verdad no es necesario saber C para aprender C++ pero sí tener una base de lógica y programación básica.
matuanime escribió:
amchacon escribió:Creo que es más correcto decir: "podría no funcionar en windows".
Gringo Alpha escribió:1º Falso, un programa escrito en C en Linux si que te funcionará en Windows, solo tienes que compilar tu código de nuevo y listo, obtendrás el ejecutable .exe

Esto la verdad es que no lo sabia, pensaba que habria que reescribir el codigo entero para pasar de windows a linux y viseversa [+risas]

Pues depende de lo que uses claro, si usas la Windows API, solo te funcionará en Windows.

Pero si usas una librería multiplataforma, pues te irá en todos los SO.

matuanime escribió:He encontrado el libro "Como programar c++" de Deitel... mas de mil paginas y en español. este es edición 2008, espero este me sirva xD

Un poco antiguo XD

A ver si te sirve esta pagina:
http://www.minidosis.org/#/
Creo que es mejor acercarse a C++ sin saber C, por que si conoces los dos acabas programando en un híbrido que no es ni carne ni pescado, pero por supuesto conociendo las bases de la programación, C++ no es para principiantes.
En su día para aprender C++ estaba muy bien C++ con Clase. Creo que para empezar a dar los primeros pasos sigue estando muy bien.

Tal vez el curso no siga el estándar actual, C++14 que son mejoras de C++11 pero para iniciarse debería ser suficiente. Luego ya, es cuestión de leer documentación de los estándares y practicar.

Un saludo ;)
Si sabes ingles, este curso te hace tomar buenos habitos, como dicen, eso si, a la fuerza. Segun el refran popular, el esfuerzo que te haga sudar, dara buenos frutos.

http://c.learncodethehardway.org
codestation escribió:No, al contrario. Lo mejor que puedes hacer es empezar con C++11 y olvidarte de C (si es que solo vas a aprender C++) ya que la forma de programar en C crea muy malos hábitos en C++. C++ moderno es un lenguaje muy distinto a C.

Unos buenos libros para empezar serian The C++ Programming Language, 4th Edition (Stroustrup) y luego Effective Modern C++ (Meyers). Este último es algo mas avanzado pero le saca el mejor provecho a C++11/C++14.


+1000

Los tipos de casteo, el uso de las std::string. Además Stroustrup es el creador del lenguaje.
Muy buena recomendación esta [beer]
Muchas gracias a todos!!

Con todo lo que me habéis nombrado ya tengo como para entretenerme un laaargo tiempo xD

De todos modos si hay algo que no entienda, seguro que estaré por aquí de nuevo XD
Muchas gracias nuevamente ^^
Moki_X escribió:Yo te recomendaría que si no sabes programar, aprendieses primero lo básico en C, y luego te metieras con C++ o Java.

+1

Te costara parecido que aprender solo C++, pero luego sabras que cosas puedes usar y que no si quieres hacer un programa en C.

Aun así, ni C ni C++ son un lenguaje para principiantes, es conveniente primero tener conceptos claros de arquitectura de ordenadores, como gestion de memoría y así. Si aprendes a programar en C/C++ sin tener claro lo que hay debajo, la puedes liar parda.

Si no quieres estudiar arquitectura primero, pues yo iría con C#, Java, Python o JavaScript ...
@matuanime si tenes PSP, llevo un tiempo con ganas de seguir mi emulador de neogeo pocket para PSP, te paso el codigo, sigues con lo q tengo en mente y no puedo ponerme por falta de tiempo (y ganas)

Es casi todo C, exepto el core que es ensamblador de mips, pero eso no neecsitas tocarlo

Aprender sobre la marcha es lo mejor para mi
theelf escribió:@matuanime si tenes PSP, llevo un tiempo con ganas de seguir mi emulador de neogeo pocket para PSP, te paso el codigo, sigues con lo q tengo en mente y no puedo ponerme por falta de tiempo (y ganas)

Es casi todo C, exepto el core que es ensamblador de mips, pero eso no neecsitas tocarlo

Aprender sobre la marcha es lo mejor para mi

Mas adelante puede ser pero ahora estoy muuuuy verde... recien estoy empezando!! xD
Pero te agradezco muchisimo el ofrecimiento ^^
si quieres le puedo pedir apuntes y ejercicios a mi hermano, el estaba dando c++ en la uni este año, supongo que te sera util
sadistics escribió:si quieres le puedo pedir apuntes y ejercicios a mi hermano, el estaba dando c++ en la uni este año, supongo que te sera util

Si no le molesta xD
Aunque hay algunos ejercicios por internet de c++, seguro que los de la uni son mas interesantes xD
matuanime escribió:
sadistics escribió:si quieres le puedo pedir apuntes y ejercicios a mi hermano, el estaba dando c++ en la uni este año, supongo que te sera util

Si no le molesta xD
Aunque hay algunos ejercicios por internet de c++, seguro que los de la uni son mas interesantes xD

te los paso el viernes-sabado, ya se los he pedido pero me ha dicho que ahora mismo esta liado, que en el finde lo mete todo en un zip y me lo pasa [tomaaa]
sadistics escribió:
matuanime escribió:
sadistics escribió:si quieres le puedo pedir apuntes y ejercicios a mi hermano, el estaba dando c++ en la uni este año, supongo que te sera util

Si no le molesta xD
Aunque hay algunos ejercicios por internet de c++, seguro que los de la uni son mas interesantes xD

te los paso el viernes-sabado, ya se los he pedido pero me ha dicho que ahora mismo esta liado, que en el finde lo mete todo en un zip y me lo pasa [tomaaa]

No hay problema, no tengo apuro ^^
yo creo que antes de empezar a aprender el lenguaje que sea, te mires lo que son los paradigmas de la programación. porque C es un lenguaje imperativo y C++ es un lenguaje orientado a objetos principalmente aunque puedas usarlo de manera imperativa.

yo creo que lo mejor es aprenderse un paradigma con un lenguuaje que lo use y luego otro paradigma con un lenguaje que lo use.

mayormente la diferencia que veo entre lenguajes del mismo paradigma es la sintaxis.

yo empece con java y haciendo scripts para el shell de gnu/linux
21 respuestas