¿Hay muchas bibliotecas y kernels clásicos en C en lugar de C++? Si es así, ¿por qué?
Muchas son bibliotecas de algoritmos y bibliotecas de bajo nivel. Incluso si estas cosas están escritas en C++, tenderán a utilizar métodos de escritura orientados a procesos. En aras de la eficiencia, los grandes utilizarán plantillas. El primero son las plantillas. Muchos programadores de CPP tienen distintos grados de dominio de esto, por lo que será más difícil mantenerlo más adelante. Si se abandonan las plantillas, entonces no hay duda de que C es más adecuado (una cosa es decir). después de agregar plantillas, C++ La eficiencia será mayor que la de C. Recuerde qsort en la orilla del lago Daming, sin mencionar la metaprogramación, que puede manejar cálculos durante la compilación)
El siguiente paso es el kernel. Las cosas que están más cerca de la capa inferior se parecen más a una zanahoria y un hoyo. La herencia polimórfica básicamente rara vez se usa. Por supuesto, las ideas de programación orientada a objetos también deben usarse. En primer lugar, las tablas virtuales. En segundo lugar, las llamadas frecuentes son definitivamente extremadamente ineficientes, por lo que al crear la GUI, la bomba de mensajes no utiliza funciones virtuales. Cada biblioteca tiene otros métodos, por lo que no entraré en detalles. Volviendo al kernel, por supuesto, también puedes usar C++ para escribir polimorfismo sin funciones virtuales (puedes hacerlo con plantillas), pero como es una plantilla, es mejor usar C para hacerlo.
En cuanto a la lógica y la organización, C utiliza el pensamiento orientado a objetos para programar, por lo que estos problemas no existen. Para obtener más detalles, consulte la biblioteca OpenCV anterior.
Entonces, tengo que admitir que C es más adecuado que C++ cuando no se requiere mucha abstracción. Por supuesto, la diferencia de rendimiento no se compara aquí.
Además, C y C++ son extremadamente compatibles, por lo que será fácil encapsularlos en C++.