P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🔷

Senior C++Preguntas de entrevista C++

Senior · 5+ años de experiencia

Las entrevistas de C++ evalúan tres cosas: si entiendes el modelo de objetos, si se te puede confiar la gestión de memoria, y si sabes qué cuesta realmente la biblioteca estándar. Aquí están las preguntas más frecuentes, cada una con una respuesta modelo. Senior: arquitectura, trade-offs, mentoría y toma de decisiones.

Pruébalo — sin cuenta necesaria
Preparando tu pregunta…

Temas para prepararte

Memoria, punteros y RAII
OOP, funciones virtuales y vtable
Move semantics y la regla de cinco
Templates y metaprogramación
Contenedores STL y complejidad
Concurrencia y data races

5 preguntas de nivel Senior con respuestas

1

¿Cómo moldean los cache misses la forma en que organizas los datos?

Respuesta

Un miss a memoria principal cuesta del orden de un par de cientos de ciclos, así que una estructura que es teóricamente mejor puede perder gravemente contra un array contiguo. Eso lleva a organizar los datos según cómo se recorrerán — structure-of-arrays cuando tocas un campo a través de muchos objetos, empaquetar los campos calientes juntos, y evitar perseguir punteros en el loop interno. El false sharing es el mismo problema invertido: dos hilos escribiendo a variables distintas en una línea de caché se serializan sobre ella, y la solución es padding a una línea de caché.

2

¿Cuándo vale la pena lock-free, y cuál es la diferencia con wait-free?

Respuesta

Lock-free garantiza que algún hilo progresa; wait-free garantiza que cada hilo progresa en un número acotado de pasos. Lock-free vale la pena bajo contención real en una estructura pequeña y bien entendida — una cola, un contador — donde un mutex domina de forma medible. No vale la pena por defecto: el código es difícil de escribir correctamente, difícil de testear, y un mutex bien usado es rápido en el caso sin contención, así que la respuesta honesta suele empezar con una medición.

3

Explica el memory ordering en `std::atomic`.

Respuesta

seq_cst es el default y da un único orden total a través de todos los hilos — correcto, y el más fácil de razonar. Los pares acquire/release establecen un happens-before entre el store que libera y el load que adquiere, que es lo que hace un lock internamente y es suficiente para la mayoría de los patrones productor-consumidor. relaxed solo garantiza atomicidad, sin orden, y es apropiado para cosas como un contador de estadísticas. Debilitar el ordering es una optimización medida, no un punto de partida.

4

Un proyecto tarda veinte minutos en compilar. ¿Cómo lo atacas?

Respuesta

Mide primero — qué translation units y qué headers dominan. Luego corta el grafo de headers: forward declarations en lugar de includes, PIMPL en las clases ampliamente incluidas, y sacar los templates de los headers donde el costo de instanciación es real. Después vienen las victorias mecánicas — precompiled headers, ccache, paralelismo, unity builds, y un linker como lld o mold. Los módulos lo resuelven correctamente donde el toolchain está listo para ellos.

5

El código es más lento de lo que debería. ¿Cuál es tu método?

Respuesta

Empieza con una medición reproducible, porque la intuición sobre el rendimiento de C++ se equivoca con la frecuencia suficiente como para ser peligrosa. Perfila para encontrar dónde va realmente el tiempo, luego mira el algoritmo antes que las microoptimizaciones. Verifica qué hizo el optimizador en lugar de asumir — el código generado responde preguntas que leer el fuente no puede. Y controla el entorno: flags de compilación, cachés calientes, frequency scaling y ruido de otros procesos, si no, producirán números que no son reales.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de Senior C++ →
Gratis · 3 entrevistas al mes

Otros niveles — C++

Junior C++Middle C++Todas las preguntas de C++

Otras especializaciones

🔍Senior Manual QA🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend💎Senior Ruby on Rails🟨Senior JavaScript⚛️Senior React Frontend