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

De IFSC
Revisão de 09h27min de 4 de abril de 2018 por imported>Fargoud (Criou página com '=CRIAÇÃO DINÂMICA DE OBJETOS= Em muitas situações, não se sabe quantos dados serão necessários, em uma determinada estrutura. Um alternativa para este problema é a...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
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 uma determinada estrutura.

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, memória para um número indefinido de objetos: 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(AnsiString 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.