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

Junior C++Perguntas de entrevista C++

Junior · sem experiência / menos de 1 ano

As entrevistas de C++ avaliam três coisas: se você entende o modelo de objetos, se pode ser confiável no gerenciamento de memória, e se sabe o que a biblioteca padrão realmente custa. Aqui estão as perguntas mais frequentes, cada uma com uma resposta modelo. Junior: teoria básica, definições e casos práticos simples.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Memória, ponteiros e RAII
OOP, funções virtuais e vtable
Move semantics e a regra dos cinco
Templates e metaprogramação
Contêineres STL e complexidade
Concorrência e data races

7 perguntas de nível Junior com respostas

1

Qual é a diferença entre um ponteiro e uma referência?

Resposta

Uma referência é vinculada uma vez e não pode ser null nem revinculada; um ponteiro pode ser null, pode ser reatribuído, e suporta aritmética. Use uma referência quando o objeto precisa existir, um ponteiro quando ele pode não existir. Como uma referência é um alias e não um objeto, &ref te dá o endereço do referenciado.

2

Onde vivem as variáveis — stack, heap ou armazenamento estático?

Resposta

As locais vivem na stack e morrem no fim do seu escopo. Tudo que vem de new vive na heap até que algo o delete. Globais e variáveis static vivem em armazenamento estático durante todo o programa. Saber em qual delas você está responde a maioria das perguntas de tempo de vida, incluindo por que retornar o endereço de uma local está quebrado.

3

O que `static` significa em C++?

Resposta

Três coisas diferentes dependendo de onde está. Numa variável local significa uma instância que sobrevive entre chamadas. Numa global ou função no nível de arquivo significa linkage interno — não visível para outras translation units. Num membro de classe significa uma instância compartilhada que pertence à classe e não a cada objeto, e um método static não tem this.

4

Qual é a diferença entre um ponteiro `const` e um ponteiro para `const`?

Resposta

const int* p aponta para algo que você não pode modificar — o próprio ponteiro é livre para se mover. int* const p é um ponteiro que você não pode reapontar, mas o valor apontado é gravável. Ler a declaração da direita para a esquerda torna isso mecânico em vez de um exercício de memória, e const int* const p é os dois.

5

Qual é a diferença entre `delete` e `delete[]`, e o que é um vazamento de memória?

Resposta

delete corresponde a new, delete[] corresponde a new[]; misturá-los é comportamento indefinido porque a forma array precisa rodar o destrutor de cada elemento. Um vazamento é memória que foi alocada e nunca liberada — o programa continua retendo ela, e um processo de longa duração cresce até morrer. Smart pointers existem para que nenhum dos dois erros seja possível.

6

Qual é a diferença entre uma `class` e um `struct`?

Resposta

Só o acesso padrão: os membros de struct são públicos por padrão, os de class são privados. Ambos podem ter construtores, métodos e herança. A distinção é uma convenção — struct para agregados simples de dados, class quando há invariantes a proteger.

7

O que é polimorfismo e como `virtual` o fornece?

Resposta

Polimorfismo é chamar a mesma interface e obter o comportamento do tipo real. Marcar uma função membro como virtual significa que a chamada é resolvida de acordo com o tipo dinâmico do objeto em tempo de execução em vez do tipo estático do ponteiro. Sem virtual, chamar através de um ponteiro base roda a versão base, que é a fonte mais comum de surpresa para quem está aprendendo a linguagem.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Junior C++ →
Grátis · 3 entrevistas por mês

Outros níveis — C++

Middle C++Senior C++Todas as perguntas de C++

Outras especializações

🔍Junior QA Manual🤖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