Explique o programa abaixo, e diga qual será a saída do programa.
Passo 1
Vamos lá, pessoal.
A questão ta pedindo pra gente ler e interpretar o programa.
A primeira coisa que devemos perceber é a presença da classe . Dentro dessa classe foi declarado um ponteiro para float , e ela possui apenas dois métodos, um construtor e um destrutor.
Vamos dar uma olhada nesse construtor, linhas 07 a 10, a primeira instrução é a impressão de uma mensagem na tela, linha 08. A segunda coisa a ser feita é a alocação dinâmica de um array de 10 posições, linha 09. Em resumo, o construtor da classe cria um vetor dinâmico.
Agora vamos dar atenção ao destrutor, linhas 11 a 14. Ele é bem similar ao construtor da classe, na primeira instrução é impressa uma mensagem, e a segunda instrução é responsável por liberar a memória alocada através do ponteiro.
A gente já debulhou a classe, agora vamos ver o que acontece na .
Na primeira linha da é criado um ponteiro do tipo , linha 18. E logo em seguida esse ponteiro é utilizado para alocar 5 objetos do tipo .
Lembre-se que assim que um objeto é criado o construtor entre em ação. O nosso construtor imprime uma mensagem. Ou seja, na linha 20 são instanciados dinamicamente 5 objetos da classe , logo, nesse exato momento a mensagem “Criando um objeto” é impressa 5 vezes seguidas.
Bem legal! Então vamos continuar.
Na linha 22 a memória alocada dinamicamente é liberada, e nesse momento o destruidor é ativado. E olha só, o destruidor também imprime uma mensagem, então para cada um dos 5 objetos destruídos será impressa a mensagem “Destruindo um objeto”.
E o programa acaba. Então se a gente rodar o programa vamos ter algo desse tipo:
Resposta
Ei, a resposta está no passo a passo :)