#include <iostream>
using namespace std;
class Cliente {
private:
    string nome;
public:
    void setNome(string n) { nome = n; }
    string getNome() { return nome; }
};
int main() {
    Cliente c;
    c.setNome("João");
    cout << c.getNome();
}
O que o código acima imprime?

Passo 1

O enunciado mostra um programa C++ e pergunta: “O que o código acima imprime?”
Informações relevantes dadas pelo enunciado:
  • Há a diretiva de inclusão #include <iostream> e using namespace std;.
  • Existe a classe Cliente com um membro privado nome do tipo string.
  • A classe tem dois métodos públicos:
    • void setNome(string n) { nome = n; }
    • string getNome() { return nome; }
  • No main():
    • É declarado um objeto Cliente c;.
    • É chamada c.setNome("João");.
    • É chamada cout << c.getNome();.
  • Não há outras chamadas a cout nem endl / \n após a impressão.

Passo 2

Entendendo o que faz setNome("João"):
  • Em C++, a string literal "João" (tipo const char[]) é automaticamente convertida para um std::string quando passada para a função que recebe string n.
  • A função setNome recebe esse string n e executa a atribuição nome = n;. Aqui nome é o membro privado do objeto c. Após essa linha, o membro c.nome contém a sequência de caracteres João.
  • Em resumo: depois de c.setNome("João");, o objeto c armazena internamente o texto João.

Passo 3

Entendendo o que faz cout << c.getNome();:
  • A chamada c.getNome() retorna o valor atual do membro nome (uma cópia do std::string contendo João).
  • O operador de inserção operator<< de std::cout sabe como imprimir um std::string: ele escreve os caracteres da string no fluxo de saída padrão (normalmente o terminal).
  • Não há endl nem '\n' após a chamada, então o programa escreve apenas os caracteres da string e não adiciona uma nova linha ao final.

Passo 4

Conclusão passo a passo do comportamento do programa:
  • setNome armazena João no objeto c.
  • getNome retorna essa string.
  • cout << escreve exatamente João no terminal.
  • Não há nova linha ao final da saída, então o cursor fica logo após o o.

Resposta

João

Exercícios relacionados