Está en la página 1de 4

Diferencia entre C y C++

Limitaciones de C:
1. No se pueden definir nuevos tipos. La facilidad typedef es esencialmente un mecanismo para especificar un
sinnimo de un tipo existente.
2. Las declaraciones de funciones no ayudan a la verificacin de tipos en las llamadas a funciones. Las versiones K&R
de C no especificaban nada sobre tipos de parmetros. En ANSI C se ha introducido la declaracin de tipos de los
parmetros, pero de modo opcional. C++ exige de modo obligatorio los prototipos.
3. Cuando las funciones se compilan separadamente, no se realiza ninguna verificacin para asegurar que los tipos de
argumentos corresponden a los tipos de parmetros. Si una funcin se compila separadamente, los compiladores C
no verifican que esta funcin es llamada consistentemente con respecto a su definicin.
4. No existen tipos de coma flotante de simple precisin. Todas las variables de tipo float se convierten a double en
expresiones o cuando se pasan como argumentos. C++ soporta float como un tipo distinto.

Mejora de Caractersticas de C en C++:


C++ incorpora nuevas caractersticas no encontradas en ANSI C. Las mejoras se pueden agrupar en tres categoras:
1.- Extensiones Orientadas a Objetos
Extensin

Propsito

Clases

Permite a las funciones y datos agruparse juntos, se utilizan para crear


objetos.

Control de acceso

Permite restringir el acceso a los datos y funciones de una clase.

Clases derivadas

Clases que heredan propiedades de las clases base existentes y permite


la reutilizacin y extensin de clases.
Permite acceso selectivo a miembros de acceso restringido de una clase.

Funciones Amigas
Funciones Virtuales

Mecanismo que facilita el polimorfismo y que determina la funcin a llamar


en tiempo de ejecucin, no en tiempo de compilacin.

Constructores

Crean las funciones definidas por el usuario para la inicializacin de


objetos.
Se llaman automticamente para limpiar memoria cuando los objetos se
tienen que borrar o liberar

Destructores

2.- Extensin (ampliacin) en los sistemas de tipos de datos


Caractersticas

Propsito

Prototipos de funciones

Proporcionan verificaciones de tipos en las llamadas a funciones.

Las etiquetas de struct, union y enum son


nombres de tipos

Simplifica la sintaxis de los tipos definidos por el usuario.

Operadores de asignacin de memoria

Soporta asignacin dinmica de tipos definidos por usuario hace la


administracin dinmica de memoria ms segura.

Enlazado con seguridad de tipos

Captura errores de paso de parmetros realizando verificacin de


tipos en tiempo de enlace.

Biblioteca de nuevos flujos

Permite mayor flexibilidad en la entrada y salida de tipos definidos por


el usuario, soporta entrada/salida (E/S) orientada a objetos; permite
especificar rutinas para convertir de un tipo a otro.

3.- Caractersticas de C++ que potencian C.


Caractersticas

Propsito

Nuevo estilo de comentarios

Proporcionan mejora en legibilidad de cdigo.

Tipos referencia

Permiten paso de parmetros por referencia

Funciones en lnea

Permite que las funciones se expandan en lnea;


Similares a las ms macros, pero mayor eficacia de cdigo.
Los operadores estndar de C pueden trabajar con tipos definidos por el
usuario, tal como un operador que sume nmeros complejos, cadenas o
matrices.
Permite especificar valores por omisin para parmetros de funciones.

Sobrecarga de operadores

Parmetros por omisin


Sobrecarga de funciones

Permite que un grupo de funciones con nombres similares realicen tareas


diferentes cuando son invocadas.

As que C es el lenguaje original, mientras que C++ es una ampliacin de C, por eso el ++. Veamos un hola mundo en los
dos programas:

Ahora que veamos un ejemplo de entrada y salida de datos de cada programa:

Pedir un dato en C

Pedir un dato en C++

scanf("modificador", &nombre de la variable);

cin >> nombre de la variable;

Mostrar un dato en C

Mostrar un dato en C++

printf("Dato: modificador", nombre de la


variable);

cout << "Dato: " << nombre de la variable;

Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.

Libreras en C++
Por simple convencin las libreras en C terminan en .h (punto hache). Todas las libreras de C sirven para C++, sin
embargo, tambin por convencin, se elimina la terminacin .h y mejor se agrega c al principio.

Librera en C

Librera en C++

math.h

cmath

string.h

cstring

time.h

ctime

El namespace
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, C++
es una ampliacin, por lo tanto tiene que agregar nuevas palabras reservadas. stas palabras reservadas estn en un
namespace (espacio de nombres). En especfico cout y cin estn el namespace std (standard).
Si no declarramos que vamos a usar el namespace std (using namespace std;), cada vez que quisiramos usar
cout, tendramos que escribir std::cout.

También podría gustarte