C vs C++

flazz
17 de Mayo del 2005
Hola, estoy realizando un proyecto escolar y siguiendo el consejo de hiei (a quien agradezco mucho su respuesta) voy a realizarlo en un lenguaje tipo C y sobre linux.

http://www.programacion.net/foros/25/msg/209316/

Mi questión es la siguiente: ¿Qué diferencia hay entre C y C++? ¿Sirve cualquier distribución linux?

Agradezco de antemano sus respuestas

hiei
17 de Mayo del 2005
C es un lenguaje estructurado de nivel medio (porque hace cosas de alto nivel pero deja hacer cosas que solo puedes hacer con el ensamblador... y C)
En C todo el codigo se hace "cuadriculando" los algoritmos en funciones.
C++ incorpora a C el concepto de objeto (y añade unas cuantas cosas aunque un compilador de C++ puede compilar C sin problemas)
C++ es un lenguaje que mescla el paradigma de la programacion estructurada con la orientada a objetos.
C++ es si, un lenguaje de alto nivel porque permite modelar problemas complejos de una forma cencilla y bastante menos dura que en C (eso si, a costa de un mallor codigo y un menor control pero todavia puedes hacer las cosas "a la C")
Otra diferencia que encuentro es que C++ estaba menos estandarisado hasta hace poco que C.
C++ es mas reciente que C y su estandarisacion tardo mas en llegar que C.
Por ejemplo, un compilador de C++ antiguo (mediado de la decada del 90 tenia esta inclucion de archivos cabecera (los remplasos de stdio.h)
#include <iostream.h>
Pero el nuevo eastandas (y muy nuevo popr cierto) dice que el archivo no lleva extencion:
#include <iostream>
Lo mismo pasa con el ABI (Aplication binary interfaz) que define el como se implementan los objetos en el codigo objeto quwe recien se estandariso hace unos pocos años.

Bueno, conceptualmente, la diferencia entre C y C++ es la diferencia de los paradigmas de los procendimientos a los objetos.

Y si, cualquier distribucion de Linux tiene compiladores de C, C++, Pascal, Java, Fortran, Cobol, Forth, (agrege aqui un monton mas), etc.
Solo tienes que isntalar GCC (que automaticamente viene con los paquietes de desarrollo) y tienes un compilador de C (en lñinea de comando, pero bueno)
Si quieres un entorno de escritorio te recomiendo KDevelop que viene con KDE (otra vez, esta en todas las distribuciones que inclullen KDE)

josecode
17 de Mayo del 2005
Yo no conozco Linux pero te puedo dar mi opinión para Windows.
Todos los compiladores que hay actualmente para Windows son C++, cuando nació C++ murió C ya no se han hecho mas actualizaciones para C de hecho C++ es una actualización de C, funciona exactamente igual que C, pero tiene mejoras, tantas como quieras, no estas obligado a usar esas mejoras, precisamente los defectos que tiene C++ son por culpa de respetar la compatibilidad con C, las bibliotecas no están sobrecargadas.

Un ejemplo de sobrecarga, en C esto no funciona pero en C++ si.
(yo creo que te resultara muy difícil encontrar un compilador en el que esto no funcione, lo que significa que es C++)

Void pantalla(int uno){ Printf(“%d”,uno); }
Void pantalla(long uno){ Printf(“%l”,uno); }
Void pantalla(float uno){ Printf(“%f”,uno); }
Void pantalla(int uno, int dos) { Printf(“%d %d ”,uno, dos); }

varias funciones distintas con el mismo nombre, solo cambian los parámetros, es mas útil de lo que puedas imaginar.

Aunque las clases es lo más útil de C++ no estas obligado a usarlas, ni a saber que existen, y siempre tienes la posibilidad de ir añadiendo cosas.