Vamos falar em Construtor e Destrutor em C++.
Construtor é uma função especial, que é "executada" quando se instancia um objeto. A estrutura da função é que tem o mesmo nome da classe e não tem retorno. Exemplo:
//ArrayList.hpp
#ifndef ARRAYLIST_H
#define ARRAYLIST_H
class ArrayList {
private:
int* array;
public:
ArrayList();
};
#endif
//ArrayList.cc
#include "ArrayList.hpp"
ArrayList::ArrayList() {
this->array = new int[10];
}
Ela poderá ser chamada assim:
int main(int num_args, char **args) {
ArrayList a;
}
Ou assim:
int main(int num_args, char **args) {
ArrayList *a;
a = new ArrayList();
...
}
Destrutor é outra função especial, que é chamada quando um objeto é desalocado da memória. A estrutura da função é que ela possue o mesmo nome da classe com um ~ (til) no começo e não tem retorno. Exemplo:
//ArrayList.hpp
#ifndef ARRAYLIST_H
#define ARRAYLIST_H
class ArrayList {
private:
int* array;
public:
...
~ArrayList();
};
#endif
//ArrayList.cc
#include "ArrayList.hpp"
...
ArrayList::~ArrayList() {
delete this->array;
}
Ela poderá ser chamada assim:
int main(int num_args, char **args) {
ArrayList *a;
...
delete a;
}
Ou simplesmente quando a função que chamou termina, se não for instanciada como ponteiro:
int main(int num_args, char **args) {
ArrayList a;
...
}
Até mais!
Nenhum comentário:
Postar um comentário