AULA 9 - Programação II - Graduação
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.