elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C sabiendo C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C sabiendo C++  (Leído 1,905 veces)
Geremy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
C sabiendo C++
« en: 7 Junio 2019, 13:48 pm »

   Hola, actualmente estoy programando en C++ , considero que tengo un nivel medio en el mismo y estoy interesado en aprender C que parece útil aprenderlo y mas sabiendo C++ ya que muchas de las cosas son iguales o parecidas, mi pregunta es ¿Que parte de C se diferencia notablemente de C++(porque ya he visto punteros, arreglos, etc y es completamente igual) y que cosas extras tiene C con respecto a C++ que necesite aprender?.


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: C sabiendo C++
« Respuesta #1 en: 7 Junio 2019, 13:57 pm »

C++ es como una expansión de C por lo que todo lo que puedes hacer en C, lo puedes hacer en C++. Como es lógico, C++ es un "avance" por lo que tiene añadidos que facilitan algunas cosas. Por ejemplo en C olvídate de strings (debes usar <char*>), clases(debes usar <struct>), paso por referencia(tendrás que usar punteros), para usar <bool> tienes que incluir <stdbool.h> o usar <int> con valores de 0 y 1.
Al no estar orientado a objetos como C++ no tendrás cosas como:
Código
  1. ifstream fichero_entrada;
  2. fichero_entrada.open("nombre_fichero.txt");
Sino que tendrás:
Código
  1. FILE *fichero_entrada;
  2. fichero_entrada = fopen("nombre_fichero.txt", "r");

Y si quieres ver más diferencias puedes seguir mirando cómo se hace todo lo que haces en C++ en C. Pero asegúrate de compilar para C porque muchos comenten el error de decir que programan en C pero están compilando en C++ por lo que meten sentencias de C++ que no existen en C y no les da problemas.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Geremy

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: C sabiendo C++
« Respuesta #2 en: 7 Junio 2019, 14:06 pm »

 Bien gracias, la verdad que lo de los string y bool creía que era igual jeje, gracias por tu respuesta y te hago otra pregunta :D ¿hay algo que sea exclusivo de C, tengo entendido que tiene mas utilidad en la programación de bajo nivel que C++, es cierto?.
 Por ultimo he de decir que estoy programando C en visual studio desde el compilador de c++, ¿según entiendo eso estaría mal no?.
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: C sabiendo C++
« Respuesta #3 en: 7 Junio 2019, 14:15 pm »

Hasta donde yo conozco exclusivo de C no ya que C++ es como una "expansión" de C, añade cosas pero no las quita. Lo que pasa es que hay cosas que en C se usan mucho y son muy típicas y en C++ existen otras formas de hacerlo.
Utilidad a bajo nivel es la misma lo que pasa es que con C te ves obligado a trabajar a más bajo nivel mientras que con C++ no tienes que hacerlo si no quieres. Al tener esta facilidad en C++ es un paso que normalmente la gente se ahorra cuando aprende. Pero si trabajas con C vas a profundizar mucho más en tus conocimientos a bajo nivel. Tampoco quiero asustar, hay muchas cosas que son como en C++ pero acabarás aprendiendo aspectos de más bajo nivel.

Si compilas como C++, al tener C++ incluido todo lo de C más lo suyo propio, si usas cosas de C++ te las dará por válidas y no sabrás que no puedes usar eso en C. A no ser claro que aprendas primero de forma teórica lo que se puede y lo que no.
A mí personalmente me ayudó mucho para diferenciar ambos lenguajes el compilar desde la Terminal de Linux, usando el comando g++ para compilar en C++ y gcc para compilar en C y te olvidas de IDEs, sólo necesitas un editor de textos y la propia Terminal.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Loretz

Desconectado Desconectado

Mensajes: 117


Ver Perfil
Re: C sabiendo C++
« Respuesta #4 en: 8 Junio 2019, 07:09 am »

El C++ (el primer estándar 98) desciende, es un derivado, del C95 (C90 más las correcciones de 1995). Luego, el C99 y el C++11 son los dos derivados de ese mismo ancestro común, el C95. Entonces, esto quiere decir que el C++11, C++14, C++17 y C++20 son primos, primos 2dos, etc. del C99, tienen al C95 como abuelito en común.

En esta página hay una lista con incompatibilidades entre C++98 y C99:
http://david.tribble.com/text/cdiffs.htm

Por ejemplo, palabras clave del C++98 que no va a reconocer un compilador C99:

  • bool
  • catch
  • class
  • const_cast
  • delete
  • dynamic_cast
  • explicit
  • export
  • false
  • friend
  • mutable
  • namespace
  • new
  • operator
  • private
  • protected
  • public
  • reinterpret_cast
  • static_cast
  • template
  • this
  • throw
  • true
  • try
  • typeid
  • typename
  • using
  • virtual
  • wchar_t

Una lista completa de lo que hace que un programa C++ no compile en C es bastante extensa, los temas serían:

  • Uniones anónimas
  • clases
  • constructores y destructores
  • excepciones y bloques try/catch
  • linkeo de funciones externas (extern "C")
  • sobrecarga de funciones
  • funciones miembro
  • namespaces
  • operadores y funciones new / delete
  • sobrecarga de operadores
  • referencias
  • STL (biblioteca estándar C++)
  • clases y funciones template

« Última modificación: 8 Junio 2019, 07:41 am por Loretz » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener Ip Sabiendo el Host
.NET (C#, VB.NET, ASP)
WIитX 1 2,298 Último mensaje 14 Septiembre 2012, 16:26 pm
por seba123neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines