¿Diferencia entre C y C ++?

6 Respuestas


  • La principal diferencia entre C y C ++ es que C es un lenguaje de programación procedimental y no admite clases ni objetos, mientras que C ++ es una combinación de lenguaje de programación procedimental y orientado a objetos; por lo tanto, C ++ puede denominarse lenguaje híbrido.

  • C ++ es Multi-Paradigm (no pura POO, soporta tanto procedimental como orientado a objetos) mientras que C sigue la programación de estilo procedimental.
      En C, la seguridad de los datos es menor, pero en C ++ puede usar modificadores para los miembros de su clase para que sea inaccesible desde el exterior.
      C sigue un enfoque de arriba hacia abajo (la solución se crea paso a paso, como cada paso se procesa en detalles a medida que avanzamos) pero C ++ sigue un enfoque de abajo hacia arriba (donde los elementos base se establecen primero y se vinculan para crear soluciones complejas) .
      C ++ admite la sobrecarga de funciones, mientras que C no la admite.
      C ++ permite el uso de funciones en estructuras, pero C no lo permite.
      C ++ admite variables de referencia (dos variables pueden apuntar a la misma ubicación de memoria). C no admite esto.
      C no tiene un marco de manejo de excepciones incorporado, aunque podemos emularlo con otro mecanismo. C ++ admite directamente el manejo de excepciones, lo que facilita la vida del desarrollador.

    para información esta visite

  • C es un lenguaje de programación procedimental y no admite clases ni objetos.

    C ++ es una combinación de lenguaje de programación orientado a objetos y procedimental. C ++ puede denominarse lenguaje híbrido.

  • C ++ es mucho más que c con clases. Hay muchos otros conceptos dentro de C ++ como plantillas, sobrecarga de funciones y operadores, excepciones y muchos otros ya mencionados aquí. Esto hace que C ++ sea muy poderoso y flexible, pero también difícil de aprender. No es que los conceptos individuales sean difíciles de entender, sino la suma de ellos y cómo funcionan juntos. Eche un vistazo a boost para ver qué es posible hacer con C ++. Y supongo que se necesitaron años para entender lo que sucede bajo el capó, lo cual es muy claro en el caso de C.

  • C ++ es Multi-Paradigm (no pura POO, soporta tanto procedimental como orientado a objetos) mientras que C sigue la programación de estilo procedimental.
      En C, la seguridad de los datos es menor, pero en C ++ puede usar modificadores para los miembros de su clase para que sea inaccesible desde el exterior.
      C sigue un enfoque de arriba hacia abajo (la solución se crea paso a paso, como cada paso se procesa en detalles a medida que avanzamos) pero C ++ sigue un enfoque de abajo hacia arriba (donde los elementos base se establecen primero y se vinculan para crear soluciones complejas) .
      C ++ admite la sobrecarga de funciones, mientras que C no la admite.


      C ++ permite el uso de funciones en estructuras, pero C no lo permite.
      C ++ admite variables de referencia (dos variables pueden apuntar a la misma ubicación de memoria). C no admite esto.
      C no tiene un marco de manejo de excepciones incorporado, aunque podemos emularlo con otro mecanismo. C ++ admite directamente el manejo de excepciones, lo que facilita la vida del desarrollador.
    para más información visite este sitio

  • En C ++, la estructura y la clase son exactamente las mismas cosas, excepto que la estructura por defecto es visibilidad pública y la clase por defecto es visibilidad privada.
    Algunas diferencias importantes entre las estructuras C y C ++:

    1. Funciones miembro dentro de la estructura : las estructuras en C no pueden tener funciones miembro dentro de la estructura, pero las estructuras en C ++ pueden tener funciones miembro junto con miembros de datos.
    2. Inicialización directa: no podemos inicializar directamente miembros de datos de estructura en C, pero podemos hacerlo en C ++.

      • C
      • C ++
      // Programa en C para demostrar que la
      inicialización // directa de miembros no es posible en C
      #include <stdio.h>

      struct Record {
          int x = 7;
      };

      // Programa de controlador
      int main ()
      {
          struct Record s;
          printf ("% d", sx);
          return 0;
      }
      / * Salida: Error del compilador
        6: 8: Error: esperado ':', ',', ';', '}' o
        '__attribute__' antes de '=' token
        int x = 7;
              ^
        En función 'principal': * /


      Producción:

      7
    3. Usando la palabra clave struct: en C, necesitamos usar struct para declarar una variable de estructura. En C ++, la estructura no es necesaria. Por ejemplo, que haya una estructura para Record. En C, debemos usar "struct Record" para las variables de registro. En C ++, no necesitamos usar struct y usar 'Record' solo funcionaría.
    4. Miembros estáticos: las estructuras de C no pueden tener miembros estáticos, pero está permitido en C ++.

      • C
      • C ++
      // Programa en C con estructura miembro estático
      struct Record {
          static int x;
      };

      // Programa de controlador
      int main ()
      {
          return 0;
      }
      / * 6: 5: Error: Se esperaba una lista de especificador-calificador
        antes de 'static'
          static int x;
          ^ * /


      Esto generará un error en C pero ningún error en C ++.
    5. Creación de constructores en la estructura : las estructuras en C no pueden tener un constructor dentro de la estructura, pero las estructuras en C ++ pueden tener la creación de un constructor.

      • C
      • C ++
      // Programa en C para demostrar que Constructor no está permitido
      #include <stdio.h>

      struct Student {
          int roll;
          Estudiante (int x)
          {
              rollo = x;
          }
      };

      // Programa de controlador
      int main ()
      {
          struct Student s (2);
          printf ("% d", sx);
          return 0;
      }
      / * Salida: Error del compilador
        [Error] especificador-calificador-lista esperado
          antes de 'Estudiante'
        [Error] especificadores de declaración esperados o
        '...' antes de la constante numérica
        [Error] 's' no declarado (primero use
        5555555555 en esta función)
        En la función 'main': * /


      Salida: 2
    6. operador sizeof: Este operador generará 0 para una estructura vacía en C mientras que 1 para una estructura vacía en C ++. // Programa en C para ilustrar la estructura vacía
      #include <stdio.h>

      // estructura vacía
      struct Record {
      };

      // Programa controlador
      int main ()
      {
          struct Record s;
          printf ("% dn", tamaño de (s));
          return 0;
      }

      Salida en C:



      0

      Salida en C ++:

      1
    7. Ocultación de datos: las estructuras C no permiten el concepto de ocultación de datos, pero está permitido en C ++, ya que C ++ es un lenguaje orientado a objetos, mientras que C no lo es.
    8. Modificadores de acceso: las estructuras C no tienen modificadores de acceso ya que estos modificadores no son compatibles con el lenguaje. Las estructuras de C ++ pueden tener este concepto ya que está incorporado en el lenguaje.

    fileyogi

Escribe tu respuesta

Tu respuesta aparecerá después de la moderación