Crie uma classe que tenha como atributo um ponteiro. Essa classe deve ter um método que utiliza este ponteiro para criar um array dinâmico. Se necessário, crie mais métodos e atributos.
Passo 1
E aí, de boas na lagoa? Então vamos lá!
A questão tá pedindo pra gente criar uma classe que utilize array dinâmico. Esse tipo de classe pode ser bem útil quando nosso programa utiliza muitos arrays dinâmicos.
Pra esse tipo de classe funcionar vão ser necessários ao menos dois atributos: o ponteiro que guarda o endereço do array, e um atributo que armazene o tamanho do array.
Além disso, vamos precisar de alguns métodos: um método pra inicializar e preencher o array dinâmico, um método pra gente acessar o conteúdo do array. E claro, se estamos usando array dinâmico, vai ser necessário um método que libere a memória quando o array não for mais necessário, e assim evitaremos vazamento de memória!
Passo 2
Então vamos começar.
Vamos criar uma classe e chamá-la de
E dentro do espaço privado, vamos criar os atributos necessários: o ponteiro que vai armazenar o endereço de memória do array dinâmico, e o atributo que vai armazenar a quantidade de elementos desse array dinâmico.
Nessa questão vamos criar um ponteiro do tipo inteiro. Mas se você quiser, pode criar classes que permitam vetores de qualquer outro tipo!
Passo 3
Agora vamos mudar para o espaço público e vamos criar os métodos.
O primeiro método que vamos criar é um que inicialize o array dinâmico. Vamos chamá-lo de , que será do tipo e vai precisar receber o tamanho do vetor que vai ser alocado.
Dentro desse método vamos alterar o conteúdo do atributo , linha 09. Em seguida vamos usar o operador para alocar dinamicamente um espaço de inteiros com o tamanho inserido pelo usuário, e o endereço de memória vai ser guardado no atributo ponteiro , linha 11.
E após criar o array dinâmico, pedimos pro usuário preencher cada uma das posições, linha 13 a 16.
Passo 4
Ainda no espaço público da nossa classe, vamos precisar de um método que permita a limpeza de memória. Afinal de contas, sempre que trabalhamos com memória alocada dinamicamente, precisamos garantir que a memória seja liberada!
Para isso vamos criar um segundo método chamado que quando chamado utiliza o operador para apagar o conteúdo do endereço de memória apontado por .
Passo 5
Até agora tudo bem. Mas se você pensar bem, vai perceber que nessa classe não existe nenhuma forma de acessar o conteúdo do vetor! Afinal de contas, o ponteiro é um atributo privado.
Então, o que podemos fazer é criar um terceiro método que retorne pra gente o conteúdo de um espaço do vetor.
Vamos chamar esse método de índice. E a função desse método será receber o valor do índice do vetor e retornar o conteúdo daquele índice:
E prontinho! Uma versão básica da classe está criada, e a questão concluída. Mas se quiser se divertir, você pode adicionar mais métodos legais a esta classe 😊