Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo aprender C++ por tu cuenta

Cómo aprender C++ por tu cuenta

Los siguientes son algunos libros recomendados:

Libros que debes leer al aprender C++

Elemental: Sintaxis/Semántica (C++)

"Edición china básica de C++", Traducido por Hou, 282 páginas.

"Tutorial universitario de C++" (segunda edición), traducido por Qiu Zhongpan, 816 páginas.

Introducción a C++ Edición china, traducida por Hou,

Ensamblaje estándar de C++, traducido por Lin Limin, 766 páginas.

"Pensamientos sobre programación en C++", traducido por Liu Zongtian, 420 páginas.

Intermedio:

Versión china de C++ más efectiva,

Hou Jiejun, Pearson 2000. 318.

Chino C++ 2/e efectivo versión,

Hou, Pearson, 2000.256.

Excepción C++ versión china,

Hou, Pearson, 2000.248.

Avanzado:

Programación en Windows

MFC de forma sencilla

Una exploración en profundidad del modelo de objetos de C++, traducida por Hou .

Patrones de diseño, traducido por Li Yingjun y otros. , Prensa de la Industria de Maquinaria, 2000.254.

Refactorización: mejorar el diseño del código existente

Aprender bien un idioma tiene un largo camino por recorrer.

Las siguientes son algunas sugerencias, espero que puedas tener una cierta comprensión de C++. .

¿Cómo entender C++?

Solo los principiantes que acaban de iniciarse en la programación se sentirán confundidos por este problema. Porque muchas personas mayores que han trabajado durante muchos años, solo sonreirán con complicidad cuando vean esta pregunta. Para ellos, no importa si quieren aprender C++ o no. Su entorno y negocio dictan qué idiomas sólo pueden utilizar. Además, para aquellos héroes que han alcanzado la iluminación, el lenguaje es sólo su herramienta y no tienen lenguaje en sus corazones. Él es el lenguaje y el lenguaje es él, un solo y mismo cuerpo.

Antes de comenzar, permítanme hacer una breve declaración. El propósito de este artículo no es defender o elogiar a C++, y ciertamente no significa elevar o suprimir otros lenguajes de programación para este propósito. Todo es sólo un sentimiento. Desde mi punto de vista personal, es inevitable que falte algo. Si es un veterano, todavía espera encontrarse con una sonrisa; si es un novato, mantenga los ojos abiertos y lea los elogios y críticas en el artículo, y no se deje engañar por mí.

Primero, necesitamos saber una cosa. ¿Qué lenguaje es C++? En pocas palabras, C++ es un lenguaje casi universal. ¿Por qué está tan cerca? Porque hay un lenguaje que C++ no puede reemplazar y es el ensamblador. Para decirlo sin rodeos, C++ es incompetente para operaciones de registro en ensamblador. ¿No lo crees? ¿Por qué no intentar reescribir los registros de la PC en C++? ¿de ninguna manera?

La “cercanía” no tiene nada de malo, pero ¿qué pasa con la “omnipotencia”? Sabemos que C++ es compatible con C. En términos generales, podemos simplemente pensar que C es solo un subconjunto de C++, por lo que si C puede hacerlo, C++ también puede hacerlo. Nadie debería estar en desacuerdo con esto. Por conveniencia, la descripción de C++ a continuación también representa C en algunos aspectos. La razón por la que no se utiliza C/C++ es simplemente para proteger el teclado. Volviendo al tema, ¿qué pasa con C#? ¿Qué pasa con JAVA? Qué pueden hacer, como aplicaciones de red y todos los aspectos de B/S, ¿por qué no se ve C++? Veamos esta cuestión desde otro ángulo. ¿Cuál es la base de funcionamiento de C# y JAVA? Sí, es una máquina virtual. ¿En qué está escrita la máquina virtual? Hola, C++. Por lo tanto, primero puede escribir una máquina virtual en C++ y luego interpretar la sintaxis de C++ en la máquina virtual. ¿No es genial? Por supuesto, no creo que nadie haría eso en la realidad. Al igual que para ir de Shenzhen a Shanghai, puedes volar o andar en bicicleta. Ambos pueden llevarte allí, pero no creo que mucha gente elija el último. Esta es una cuestión de eficiencia. ¿Volando llegarás con los ojos abiertos o llegarás con los ojos cerrados? Bueno, es difícil estimar el tiempo. Por lo tanto, este campo debe dejarse en C# o JAVA y dejar que se muevan. En cuanto a C++, déjalo así, a menos que realmente quieras ser genial.

Entonces, veamos las aplicaciones de escritorio. La llamada aplicación de escritorio se refiere a una aplicación de escritorio en un sentido estricto. En general, C++ todavía puede ocupar un lugar en este campo. Pero este único lugar también está en peligro. Antes de XP, porque el sistema no lo tenía. net framework está preinstalado. Los oponentes de C++ no son más que VB y DELPHI, pero no pueden sacudir el árbol de C++ en absoluto.

Aunque también se puede instalar XP. NET framework, es un poco irreal construir algo tan grande para una aplicación. Pero en la era post-XP, el mundo es diferente. Vista es el propietario. net framework preinstalado, sin mencionar Windows 7. Incluso hay rumores de que la interfaz de usuario de Windows 7 está hecha en C#. Además, C# tiene una carta de triunfo y se puede combinar perfectamente con Silverlight, lo que reduce en gran medida la dificultad del desarrollo de la interfaz de usuario. Parece que C++ no lo tendrá fácil en el campo de las aplicaciones de escritorio en el futuro. En este campo, tal vez C++ todavía pueda mostrar su poder, pero tal vez solo queden juegos 3D a gran escala. Aunque se puede utilizar C++. net combinado con OpenGL o Direct3D, la eficiencia se reducirá considerablemente. Aunque este descuento puede reducirse a medida que el hardware continúa mejorando, después de todo, todavía existe. Mientras exista el descuento, esos fabricantes de juegos no abandonarán C++ porque se puede optimizar, ¿por qué no? Pero tal vez sea sólo eso. C ++, me eché a llorar en ese momento.

Por último, está el campo incrustado. Aquí está el mundo de C++, y C++ siempre será el rey. ¡No luches solo! ¡En este momento, su alma está poseída! ¿Alguna vez ha visto RTOS escrito en otros lenguajes además de C++ (como se mencionó anteriormente, aquí C++ también significa C)? Al menos no lo recuerdo. Soporte de Linux integrado. ¿neto? A menos que Microsoft esté loco. Algunas personas pueden decir que el apoyo no se puede dar marcha atrás. ¿neto? Puede ser compatible, pero eso no significa que todos los dispositivos WinCE sean compatibles. Debido a que WinCE es un sistema operativo personalizable, tal vez para ahorrar espacio en la memoria, tal vez para la velocidad de inicio, o por otras razones diversas o incluso inexplicables, muchos fabricantes no lo agregarán en absoluto. Neto, este componente ampliará su sistema de productos a al menos 4 millones de unidades. Eche un vistazo al código del kernel de WinCE y al paquete WinCE BSP. ¿Dónde? ¿Código de red? Todo esto está incluido en C++. Incluso para las aplicaciones WinCE, la actitud de Microsoft es muy clara. Silverlight, sólo se puede utilizar en . net en el escritorio, después de agregar WinCE SP3, se cambió a una interfaz C++. Rey, rey absoluto, ¡es imposible que otros lenguajes sacudan C ++ aquí! ¡En este punto, C ++ se ha mantenido firme! ¡Mantén la espalda recta!

Dicho esto, echemos finalmente un vistazo a por qué todo el mundo dice que C++ es difícil de aprender. Si no está interesado en aprender bien C ++, es posible que las siguientes palabras no le resulten nutritivas. Puede ignorarlas por completo y hacer clic para cerrar la página web actual con alegría o enojo.

De hecho, aprender C ++ es muy simple. La dificultad radica en la palabra "bueno". A los novatos les resultará fácil comenzar porque C++ no tiene sintaxis, pero después de descubrir la sintaxis, me confundí. ¿Qué sigue? Esto se debe simplemente a que C++ es demasiado flexible. Para una función, C++ tiene varios métodos. ¿Qué método es el más apropiado? Por ejemplo, ¿cuándo debería utilizar punteros y cuándo debería utilizar referencias para parámetros formales pasados ​​a funciones? Incluso la conversión de puntero habitual ya no puede funcionar correctamente. Hay corchetes C y Dynamic_cast y reinterpret_cast específicos de C++. Sin mencionar la asignación de memoria, malloc, nuevo y cambiar tamaño si se incluye STL. Creo que estos son, para principiantes, si puede mirarlos sin dolor en la cintura y las piernas, entonces admiro mucho la fuerza tranquila de esta persona.

C++ es aún más frustrante para los principiantes. Incluso sin todas las características de STL, clases, herencia virtual e incluso C++, aún puede completar las funciones correspondientes. Entonces tengo curiosidad, ¿qué es C++? ¡Quizás en este momento muchas personas piensen lo felices que serían si la elección fuera única! Mucha gente recurre a C# (u otros lenguajes) porque para ciertas operaciones, el método es único, si no único, no es tan diverso como C++;

No voy a discutir cómo aprender C++ aquí, porque hay mil maneras para mil personas, y estos mil métodos pueden no ser adecuados para usted. Pero una cosa es * * *, es decir, lee más. Si digieres cuidadosamente los trabajos clásicos de C ++ en el mercado, creo que puedes lograr la perfección. No importa si no puedes alcanzarlo. ¿Puedes memorizar poesía aunque no sepas escribirla? Pero la fuerza de voluntad es muy importante en estos momentos, y por supuesto también se requiere un poco de inteligencia emocional. Debemos creer que no hay obstáculos que superar.

Finalmente, terminaré con una frase: C++ es riesgoso, así que tenga cuidado al ingresar a la industria.