Diferencias entre C y C++


SUBMITTED BY: Guest

DATE: Jan. 29, 2014, 2:40 p.m.

FORMAT: Text only

SIZE: 4.7 kB

HITS: 10433

  1. Me han estado llegando comentarios y correos con dudas, correcciones y todo tipo de insultos (no, eso último no) y decidí responder todos ellos con este post en el que aclararé lo que es C y lo que es C++ y sus diferencias.
  2. C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
  3. C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos.
  4. Así que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++.
  5. A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en verdad me enseñaron únicamente C, así que muchos profesores en realidad no saben lo que es programar en C++. Veamos un hola mundo en los dos programas:
  6. En C
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6
  13. 7
  14. #include<stdio.h>
  15. int main()
  16. {
  17. printf ("Hola Mundo");
  18. return 0;
  19. }
  20. En C++
  21. 1
  22. 2
  23. 3
  24. 4
  25. 5
  26. 6
  27. 7
  28. 8
  29. 9
  30. #include<iostream>
  31. using namespace std;
  32. int main()
  33. {
  34. cout << "Hola mundo";
  35. return 0;
  36. }
  37. Para el tipo de programas que se estarán mostrando en este blog la diferencia más importante es la entrada y salida de datos. Así que veamos un ejemplo de entrada y salida de datos de cada programa:
  38. En C
  39. 1
  40. 2
  41. 3
  42. 4
  43. 5
  44. 6
  45. 7
  46. 8
  47. 9
  48. 10
  49. 11
  50. 12
  51. 13
  52. 14
  53. 15
  54. 16
  55. 17
  56. 18
  57. 19
  58. 20
  59. 21
  60. 22
  61. 23
  62. #include<stdio.h>
  63. int main()
  64. {
  65. int radio;
  66. float area, perimetro;
  67. // SALIDA: mensaje un pantalla
  68. printf("Introduce el radio del circulo: ");
  69. //ENTRADA: recibir dato desde teclado
  70. scanf("%d", &radio);
  71. // calculos
  72. area = 3.1416 * radio * radio;
  73. perimetro = 3.1416 * radio * 2;
  74. //SALIDA: resultado en pantalla
  75. printf("El area es %.2f y el perimetro %.2f", area, perimetro);
  76. getch();
  77. return 0;
  78. }
  79. En C++
  80. 1
  81. 2
  82. 3
  83. 4
  84. 5
  85. 6
  86. 7
  87. 8
  88. 9
  89. 10
  90. 11
  91. 12
  92. 13
  93. 14
  94. 15
  95. 16
  96. 17
  97. 18
  98. 19
  99. 20
  100. 21
  101. 22
  102. 23
  103. 24
  104. #include<iostream>
  105. using namespace std;
  106. int main()
  107. {
  108. int radio;
  109. float area, perimetro;
  110. // SALIDA: mensaje un pantalla
  111. cout << "Introduce el radio del circulo: ";
  112. //ENTRADA: recibir dato desde teclado
  113. cin >> radio;
  114. // calculos
  115. area = 3.1416 * radio * radio;
  116. perimetro = 3.1416 * radio * 2;
  117. //SALIDA: resultado en pantalla
  118. cout << "El area es " << area << " y el perimetro " << perimetro;
  119. cin.get();cin.get();
  120. return 0;
  121. }
  122. Lo que noté al hacer estos dos programitas es que pedir un dato en C++ es mucho mucho más simple que en C. Sin embargo, el asunto de los << y >> puede llegar a ‘asustar’ a los recién iniciados en la programación.
  123. Pedir un dato en C
  124. scanf("modificador", &nombre de la variable);
  125. Pedir un dato en C++
  126. cin >> nombre de la variable;
  127. Mostrar un dato en C
  128. printf("Dato: modificador", nombre de la variable);
  129. Mostrar un dato en C++
  130. cout << "Dato: " << nombre de la variable;
  131. Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.
  132. Librerías en C++
  133. Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio.
  134. Libreria en C Librería en C++
  135. math.h cmath
  136. string.h cstring
  137. time.h ctime
  138. etcetera.
  139. El ‘namespace’
  140. C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, … C++ es una ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras reservadas están en un ‘namespace’ (espacio de nombres). En específico cout y cin están el namespace std (standard).
  141. Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que quisieramos usar cout, tendríamos que escribir std::cout.
  142. Espero que a partir de ahora pueden identificar si un programa está en C o en C++. También espero estar publicando mis programas en ambos lenguajes a partir de ahora.

comments powered by Disqus