Considere a classe abaixo:
Escreva um programa em C++ que receba um valor de entrada e, em seguida:
- Aloque espaço dinamicamente na memória para criar um array de de elementos.
- Preencha o array criado com valores digitados pelo usuário;
- Imprima o array preenchido na tela
- Libere o espaço de memória alocado.
Passo 1
E aí, tranquilidade? Essa questão vai ser um pouco grandinha, mas você vai ver que é tranquila.
Antes de mais nada, observando a classe do enunciado vemos que temos uma variável do tipo . Então vai ser necessário adicionar o cabeçalho
Agora vamos falar um pouco sobre a questão. Ela quer que a gente crie um array dinâmico que armazena objetos da classe , imprima o conteúdo do array dinâmico, e depois apague o array dinâmico.
Pra facilitar a nossa vida, vai ser legal que a gente mexa um pouco na classe e adicione alguns métodos pra facilitar a nossa vida na hora de preencher e imprimir os atributos da classe.
Depois que a classe tiver adaptada, a gente vai pedir o valor de pro usuário, e criar um array dinâmico com o tamanho . E usando loops vamos preencher e imprimir cada um dos objetos armazenados no array
Passo 2
Ok, com o cabeçalho do código já feito, vamos adicionar a classe do enunciado ao nosso programa:
Show. Agora vamos mudar para o contexto público, e dentro dele vamos criar um método que nos ajude na hora de preencher essa classe.
Vamos criar o método , é bem simples, esse método vai usar o e para pedir que o usuário preencha valores, e armazenar os valores inseridos nos atributos adequados. Esse método não precisa receber nenhum parâmetro, e não retornará nada, portanto será :
Ainda no espaço público, vamos criar um outro método que vai nos ajudar a imprimir o conteúdo da classe, chamado que vai imprimir cada um dos atributos junto com uma mensagem adequada:
E pronto. Com isso a gente pode concluir a classe e partir pra
Passo 3
Dentro da vamos começar declarando uma variável e um ponteiro para chamado .
E em seguida perguntamos pro usuário o valor de :
E com o valor de obtido podemos alocar dinamicamente um espaço na memória, com a seguinte sintaxe:
Ou seja, usaremos o operador para alocar espaços do tipo na memória, e guardar o endereço de memória desse espaço no ponteiro :
E assim, a memória foi alocada dinamicamente.
Passo 4
Agora vamos preencher cada uma das pessoas.
Pra isso vamos usar um loop para acessar cada uma das posições do array , e usando o operador ponto vamos poder acessar os métodos contidos dentro do objeto. Ou seja, poderemos usar o método
Iniciamos um loop que vai de até de um em um:
E em cada iteração vamos acessar a posição de e utilizar o método
E finalizamos o loop.
Passo 5
Para imprimir o conteúdo de cada um dos objetos vamos fazer a mesma coisa. Vamos acessar cada um dos elementos do array e utilizar o método
Iniciamos um loop que vai de até de um em um:
E em cada iteração vamos acessar a posição de e utilizar o método
E finalizamos o loop.
Passo 6
Show de bola! O vector dinâmico foi criado, preenchido e impresso!
Por último, mas não menos importante, a gente sempre tem que deletar elementos criados dinamicamente. Então vamos usar o operador para deletar o array dinâmico:
E depois de deletar podemos finalizar o programa com segurança!