AULA 9 - Programação II - Graduação

De IFSC
Revisão de 08h42min de 11 de abril de 2018 por imported>Fargoud (→‎CRIAÇÃO DINÂMICA DE OBJETOS)
Ir para navegação Ir para pesquisar

CRIAÇÃO DINÂMICA DE OBJETOS

Em muitas situações, não se sabe quantos dados serão necessários, em um programa, para armazenar as entradas.

Um alternativa para este problema é a Alocação dinâmica!

Isto significa que o objeto não será criado em tempo de projeto, no código, mas em tempo de execução do programa.

Para alocar, durante a execução do programa, de memória para um número indefinido de objetos, em C++, utiliza-se os operadores new e delete.

Sintaxes:

NomeClasse * NomePtr = new NomeClasse ;

cria um novo objeto da classe NomeClasse, chama o construtor (se houver) e devolve para NomePtr um ponteiro para o objeto.

delete NomePtr;

libera o espaço utilizado pelo objeto apontado por NomePtr e chama o destrutor do objeto (se houver).

Exemplo:

class Aluno {  ...  
 public: 	
      Aluno(String^ N); 
      void LeIdade(int i); 
... };
...
NomeObjDin = Edit1->Text;
Aluno * PtrAluno = new Aluno(NomeObjDin) ; //cria objeto
PtrAluno->LeIdade(Edit2->Text); //acessa método do objeto
...
delete PtrAluno;   ...  //destrói o objeto apontado por PtrAluno

DICA: você pode criar um atributo estático (static int) na própria classe (e seu método público de atualização, também static), para manter uma contagem do número de objetos criados. OBS: inicialização na declaração!!!

EXERCÍCIO:

Crie a classe Pessoa, contendo os atributos Nome, Endereco e RG. A classe tem um construtor e um método privado EntraDados( ). No código cliente, crie a classe CadastraPessoa e utilize-a para gerar uma lista dinâmica de objetos do tipo Pessoa, com funções de inclusão, remoção e atualização de dados dos elementos da lista.