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

Junior C++Preguntas de entrevista C++

Junior · sin experiencia / menos de 1 año

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. Junior: teoría básica, definiciones y casos prácticos simples.

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

7 preguntas de nivel Junior con respuestas

1

¿Cuál es la diferencia entre un puntero y una referencia?

Respuesta

Una referencia se vincula una vez y no puede ser null ni revincularse; un puntero puede ser null, puede reasignarse, y soporta aritmética. Usa una referencia cuando el objeto debe existir, un puntero cuando podría no existir. Como una referencia es un alias y no un objeto, &ref te da la dirección del referente.

2

¿Dónde viven las variables — stack, heap o almacenamiento estático?

Respuesta

Las locales viven en el stack y mueren al final de su scope. Todo lo que viene de new vive en el heap hasta que algo lo elimina. Las globales y variables static viven en almacenamiento estático durante todo el programa. Saber en cuál estás responde la mayoría de las preguntas de lifetime, incluyendo por qué devolver la dirección de una local está roto.

3

¿Qué significa `static` en C++?

Respuesta

Tres cosas distintas según dónde esté. En una variable local significa una instancia que sobrevive entre llamadas. En una global o función a nivel de archivo significa linkage interno — no visible para otras translation units. En un miembro de clase significa una instancia compartida que pertenece a la clase y no a cada objeto, y un método static no tiene this.

4

¿Cuál es la diferencia entre un puntero `const` y un puntero a `const`?

Respuesta

const int* p apunta a algo que no puedes modificar — el puntero mismo es libre de moverse. int* const p es un puntero que no puedes reapuntar, pero el valor al que apunta es escribible. Leer la declaración de derecha a izquierda hace esto mecánico en vez de un ejercicio de memoria, y const int* const p es ambos.

5

¿Cuál es la diferencia entre `delete` y `delete[]`, y qué es una fuga de memoria?

Respuesta

delete corresponde a new, delete[] corresponde a new[]; mezclarlos es comportamiento indefinido porque la forma array tiene que correr el destructor de cada elemento. Una fuga es memoria que se asignó y nunca se liberó — el programa la sigue reteniendo, y un proceso de larga duración crece hasta morir. Los smart pointers existen para que ninguno de los dos errores sea posible.

6

¿Cuál es la diferencia entre una `class` y un `struct`?

Respuesta

Solo el acceso por defecto: los miembros de struct son públicos por defecto, los de class son privados. Ambos pueden tener constructores, métodos y herencia. La distinción es una convención — struct para agregados simples de datos, class cuando hay invariantes que proteger.

7

¿Qué es el polimorfismo y cómo lo provee `virtual`?

Respuesta

El polimorfismo es llamar a la misma interfaz y obtener el comportamiento del tipo real. Marcar una función miembro como virtual significa que la llamada se resuelve según el tipo dinámico del objeto en runtime en lugar del tipo estático del puntero. Sin virtual, llamar a través de un puntero base corre la versión base, que es la fuente más común de sorpresa para quienes aprenden el lenguaje.

🦎

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 Junior C++ →
Gratis · 3 entrevistas al mes

Otros niveles — C++

Middle C++Senior C++Todas las preguntas de C++

Otras especializaciones

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