Exercícios Resolvidos de Ponteiros com classes e objetos

Ver Teoria

Enunciado

Crie uma classe C i r c u l o com os atributos privado r a i o . Usando o ponteiro t h i s crie um método setter e um método para imprimir o valor da área do círculo.

Em seguida, aloque dinamicamente um objeto da classe C i r c u l o , peça pro usuário o valor do raio e imprima a área.

Passo 1

Bora?! Pois vambora!

A questão quer que a gente crie uma classe simples que represente um círculo, e em seguida aloque um objeto dinâmico.

Então vamos começar com o cabeçalho do código. Vamos adicionar a c m a t h pois será útil para calcular o raio.

Passo 2

Vamos lá desenvolver a classe.

Começamos usando a palavra chave c l a s s para declarar a classe C i r c u l o . Então, dentro do contexto privado, vamos declarar os atributos r a i o e a r e a :

Mudando para o contexto público vamos construir um setter para alterar o valor do atributo r a i o , esse s e t t e r não precisa de retorno (tipo v o i d ) e recebe do usuário o valor do raio. Usando o ponteiro t h i s e o operador - > podemos acessar o atributo r a i o e guardar o valor inserido pelo usuário nesse atributo.

Note que o atributo r a i o e o parâmetro r a i o têm o mesmo nome. Quando isso acontece, o uso do ponteiro t h i s é obrigatório!

Agora temos que desenvolver um método que calcule a área e imprima o valor na tela.

Vamos criar o método p r i n t A r e a que não retorna nem recebe nada. Esse método acessa o atributo r a i o e calcula a área do círculo utilizando a função p o w ( ) e guarda o resultado no atributo A r e a . Para acessar o valor os atributos r a i o e A r e a podemos usar o ponteiro t h i s e o operador seta:

t h i s - > A r e a = 3.1415 * p o w ( t h i s - > r a i o , 2 )

Em seguida utiliza o comando c o u t para imprimir uma mensagem com o valor da área.

Nesse caso, o uso do ponteiro t h i s é opcional, pois poderíamos acessar o atributo A r e a sem utilizá-lo.

Passo 3

Show de bola. Agora vamos pra parte legal.

Vamos iniciar a m a i n (   ) . Dentro dela vamos precisar de uma variável que vai receber o valor do raio do usuário. O objetivo da questão é alocar um objeto dinamicamente. Então vamos precisar criar um ponteiro para a classe C i r c u l o

O próximo passo é criar o objeto dinâmico. Para isso vamos utilizar o operador n e w para encontrar um endereço de memória disponível onde poderemos alocar dinamicamente um objeto do tipo C i r c u l o

Passo 4

Agora é só alegria. O mais difícil já passou.

Vamos usar o c o u t e c i n para receber o valor do raio do usuário:

Passo 5

E agora a gente pode usar o ponteiro c i r para acessar o endereço de memória que foi alocado, e através do ponteiro vamos poder trabalhar com o objeto.

Usando o ponteiro e o operador seta podemos utilizar o método s e t R a i o para inicializar o valor do raio do círculo

E da mesma forma podemos usar o método p r i n t A r e a (   )

E dessa forma a questão tá praticamente pronta, pois conseguimos alocar um objeto dinâmico e acessá-lo através de um ponteiro.

Passo 6

Mas antes de finalizar a questão, nunca devemos nos esquecer de deletar os objetos criados dinamicamente:

E prontinho! Questão terminada.

Resposta