¿Qué es C++? ¿Es C++ difícil? ¿Tengo que aprender C++ para programar? Gracias por tu ayuda.
C++ generalmente se pronuncia "C plus plus" en el círculo de programadores de China continental y "C plus plus" en Occidente. Lenguaje de programación informática ampliamente utilizado. C++ es un lenguaje de programación de propósito general que admite múltiples paradigmas de programación y verificación de tipos de datos estáticos. Admite varios estilos de programación, como sobreprogramación, abstracción de datos, programación orientada a objetos, programación genérica, etc.
En la década de 1980, el Dr. Bjarne Stroustrup de Bell Labs inventó e implementó C++ (el lenguaje originalmente se llamaba "C con clases"). C++ comenzó como una mejora del lenguaje C. Primero agregó clases al lenguaje C y luego continuó agregando nuevas funciones. Gradualmente se agregaron al estándar funciones virtuales, sobrecarga de operadores, herencia múltiple, plantillas, excepciones, RTTI y espacios de nombres. En 1998, la Organización Internacional de Normalización (ISO) publicó el estándar internacional ISO/IEC 14882-1998 para el lenguaje de programación C++, pero lamentablemente, debido a la complejidad y larga evolución del lenguaje a lo largo de los años, hoy (2004) existen Sólo unos pocos compiladores compilados cumplen totalmente con el estándar (esto no es del todo cierto; de hecho, ningún compilador hasta la fecha es totalmente compatible con el estándar). Ningún compilador es totalmente compatible con ISO C++).
Además, en lo que respecta al aprendizaje de C++, se puede considerar como un lenguaje independiente y no depende de C. Podemos aprender C++ directamente sin aprender C. Según una reseña del libro "Thinking in C++", la diferencia de eficiencia entre C++ y C suele ser de más o menos el 5%. Es por eso que algunas personas creen que C++ puede reemplazar completamente a C en la mayoría de las situaciones (sin embargo, todavía usamos C en microcontroladores y otros lugares donde se requiere un uso cuidadoso del espacio y la manipulación directa del hardware).
Según el primer artículo de "Effective C++ 3rd edition", C++ ahora consta de los siguientes cuatro "sublenguajes":
1. C++ admite casi todas las características de C, con solo diferencias menores de sintaxis (por ejemplo, valores l y valores r de expresiones entre corchetes; consulte C ++ para obtener más detalles).
2.)
2. C++ orientado a objetos. Como todos sabemos, C++ es ante todo un lenguaje orientado a objetos, y esta característica no se discutirá en detalle aquí.
3. Lenguaje de programación general. Las poderosas capacidades de plantilla de C++ (pero fácilmente fuera de control) le permiten realizar la mayor parte de su trabajo en tiempo de compilación, lo que mejora en gran medida la eficiencia del tiempo de ejecución.
4. STL (Biblioteca de plantillas estándar de C++). A medida que STL continúa evolucionando, gradualmente se ha convertido en una parte integral de la programación en C++. Su eficiencia puede ser menor que la del código ingenuo común, pero su seguridad y estandarización lo hacen popular.
El desarrollo del lenguaje C++ se puede dividir aproximadamente en tres etapas: La primera etapa duró desde la década de 1980 hasta 1995. En esta etapa, C ++ es esencialmente un lenguaje orientado a objetos basado en tipos tradicionales. Con una eficiencia cercana a la del lenguaje C, ocupa una parte considerable de los lenguajes de desarrollo utilizados en el campo industrial. 1995 Duró hasta el año 2000, durante esta etapa, debido al surgimiento de bibliotecas de programación como la Standard Template Library (STL) y posteriormente Boost, la programación general tomó cada vez más importancia. Por supuesto, al mismo tiempo, debido a la aparición de lenguajes como Java y C # y la fuerte caída de los precios del hardware, C ++ también se ha visto afectado en cierta medida desde el año 2000 hasta la actualidad; Debido al surgimiento de bibliotecas de programación como Loki y MPL, con el surgimiento de la programación generativa y la metaprogramación de plantillas, C ++ ha marcado el comienzo de otro nuevo pico en su historia de desarrollo. La aparición de estas nuevas tecnologías y su integración con tecnologías originales. C++ es uno de los lenguajes de programación convencionales más maduros de la actualidad.
C++ es un lenguaje estructurado, como dijo el Sr. Tan, se centra en algoritmos y estructuras de datos, mientras que el diseño de programas en C se centra en operar sobre entradas (o condiciones ambientales) para obtener salidas (o el proceso). Para realizar el proceso (control de transacciones), el diseño del programa C se centra en construir un modelo de objeto para que se ajuste al dominio del problema correspondiente al modelo, a fin de resolver el problema. Lo primero que hay que considerar en C++ es cómo construir un modelo de objeto para que se ajuste al dominio del problema correspondiente, a fin de obtener la información de estado del objeto, obtener la salida o implementar el control del proceso (transacción).
Por lo tanto, la mayor diferencia entre C y C++ son sus diferentes formas de pensar acerca de la resolución de problemas. La razón por la que C++ es más avanzado que el lenguaje C es que "el concepto de diseño se ha integrado en C++", y en lo que respecta al lenguaje en sí, ¡el lenguaje C es más un concepto algorítmico! Los algoritmos son la base de la programación y un buen diseño sin buenos algoritmos es igualmente malo. Además, "C más buen diseño" también puede producir cosas muy buenas.
En lo que respecta al lenguaje en sí, C es un subconjunto de C++, entonces, ¿qué tipo de subconjunto es? Como se puede ver en lo anterior, C implementa el control de procesos y otras características relacionadas de C++, mientras que C en C++ (yo lo llamo "C+") se mejora sobre la base del C original, introduciendo sobrecarga, conectividad interna, excepción. manejo y otras técnicas, y C++ también extiende el diseño orientado a objetos, como clases, herencia, funciones virtuales, plantillas y contenedores, C++ también extiende el diseño orientado a objetos, incluidas clases, herencia, funciones virtuales, plantillas y clases de contenedores.
En C++, la encapsulación y los tipos de datos no son contenido nuevo, sino la elección de la granularidad de los objetos, el diseño de las interfaces y la herencia de los objetos, y el uso de la composición y la herencia.
Por lo tanto, C++ tiene conceptos de "diseño" mucho más ricos que C, pero C es un subconjunto autoconsistente de C++ y también vale la pena aprender sus poderosas funciones.
Si desea aprender a programar, se recomienda que primero aprenda C, porque C es la base y C se enfoca en desarrollar el pensamiento de programación. Si aprende bien C, será fácil hacer la transición a C++.
C está orientado a procesos y C++ está orientado a procesos. El primero no utiliza declaraciones de clases, mientras que el segundo sí. Hay algunas reservas básicas que son diferentes, pero en realidad no hay mucha diferencia en general. C ++ puede entenderse como el desarrollo y el lenguaje de C, y también es un avanzado. nivel. ¡Entiendes el idioma, pero no es de tan alto nivel!
C/C++ se refiere a C o C++, que es una serie de lenguajes
La relación entre C y C++:
Como se mencionó anteriormente, Entre Win98 y WinXP, C ++ agrega nuevas teorías y juega nuevos trucos sobre la base de C. Por eso se llama C plus plus.
La diferencia entre C y C++:
C es un lenguaje estructurado que estudia principalmente algoritmos y estructuras de datos. La consideración principal en la programación en C es cómo obtener resultados (o lograr el control del proceso (transacción)) a través del proceso de computación de entradas (o condiciones ambientales).
C++ considera principalmente cómo construir un modelo de un objeto para que el modelo pueda ajustarse al dominio del problema correspondiente, a fin de obtener resultados o implementar el control del proceso (transacción) obteniendo la información de estado del objeto. . Por tanto, la mayor diferencia entre C y C++ radica en sus diferentes formas de pensar acerca de la resolución de problemas. La razón por la que C++ es más avanzado que el lenguaje C es porque "el concepto de diseño se ha integrado en C++".
Citando nuevamente las opiniones de los maestros:
¿Cuál es la diferencia entre C++ y C? Ahora analicémoslo paso a paso
1. Las clases, las clases son una carga para los principiantes. La encapsulación de clases hace que los programas sean aburridos, incómodos y problemáticos para los principiantes.
2. Las referencias son algo que es mejor no utilizar en C++ a menos que sea absolutamente necesario. Es más probable que las referencias causen confusión a los principiantes, que no saben cuál es una referencia y cuál es una variable.
3. Sobrecarga de funciones. Parece inofensivo para los principiantes aprender a sobrecargar funciones, pero esto hará que los principiantes subestimen inconscientemente la importancia de los tipos de variables en el lenguaje C. Lo más sensible es que la importancia de los tipos de variables en el lenguaje C es evidente.
4. Operador de flujo, por la misma razón que el anterior, diluye la importancia de los tipos de variables y, a veces, produce resultados que confunden a los principiantes.
5. Sobrecarga del operador. Es posible que los principiantes no utilicen la sobrecarga de operadores, una aplicación avanzada típica. Esto les hará sentir que C ++ es difícil, el umbral es alto y no pueden entenderlo.
6. La herencia y las funciones virtuales pueden parecer profundas, pero tienen un valor práctico muy bajo. Hay algunas cosas que no comentaré, como: operadores nuevos y de eliminación
7 Malentendido: en forma de preguntas y respuestas:
P: C++ es objeto. orientado, mientras que C ¿está orientado a procesos?
Respuesta: La segunda es correcta, la primera es incorrecta. C++ no está completamente orientado a objetos. El único lenguaje verdaderamente orientado a objetos es probablemente Java.
P: ¿Puede C++ hacer algo que C no puede hacer?
Respuesta: Al menos no lo he encontrado todavía.
P: Después de aprender C, ¿hay algún obstáculo para aprender C++? Por ejemplo, ideas de programación
Respuesta: Al menos no he visto a nadie con este síntoma.
P: Después de aprender C y luego aprender C++, ¿tengo que empezar desde cero?
Respuesta: No, puedes completar todas las funciones del lenguaje C en C++.
P: Después de aprender C, ¿todavía tengo que aprender C++ para programar?
Respuesta: Absolutamente no es necesario.
P: ¿Por qué C++ es mejor que el lenguaje C?
Respuesta: Más ingeniería de software
P: Después de aprender C, ¿es fácil aprender C++?
Respuesta: Depende de si realmente has terminado de aprender C.
Espero que tengas una comprensión conceptual de C/C++.