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 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.