Construtores e destruidores de C ++

Construtores e destruidores de C ++
Em C ++, o construtor é uma característica forte de uma classe. Sabemos que em C ++, costumávamos fazer várias classes. Nas aulas, usamos para fazer uma função. Portanto, o construtor é um tipo especial de função de membro.

Destruidor também é uma função de uma classe em c++. Como o construtor destruidor também possui alguns recursos especiais. Agora discutimos o construtor e o destruidor em nosso tópico.

Características básicas do construtor:

  1. Construtor tem um recurso único: o nome da classe e o nome do construtor deve ser o mesmo.
  2. O construtor não tem nenhum tipo de retorno como a função normal. Portanto, não podemos usar nenhuma palavra -chave de retorno dentro do construtor.
  3. Construtor se comporta como uma função, mas difere de uma função normal.

Agora escrevemos um programa, como fazer um construtor em uma classe.

Exemplo de programação 1:

#incluir
usando namespace std;
Complexo de classe

privado :
int x, y;
público:
Complexo () // Crie um construtor dentro da classe.

cout<< “ Example of a Constructor \n ” ;

;
int main ()

Complexo com;
retornar 0;

Saída:

Explicação:

Aqui criamos uma classe chamada complexo. Declaramos duas variáveis, x e y, sob o modificador de acesso privado. Em seguida, criamos um construtor em um modificador público semelhante ao nome da classe. Aqui não escrevemos nenhuma palavra -chave de retorno para o construtor.

Construtor é chamado implicitamente. Quando um objeto está obtendo o construtor de memória será executado por padrão.

Classificação do construtor:

Existem três tipos de construtores disponíveis em C++. Eles são

  1. Padrão.
  2. Parametrizado.
  3. cópia de.

a. Construtor padrão:

Sempre que não criamos nenhum construtor para uma classe e criamos um objeto para essa classe, o construtor é implicitamente chamado pelo compilador. Esse tipo de construtor é chamado de construtor padrão. Tem um recurso especial. Não há código dentro de seu corpo e não leva parâmetros.

Exemplo de programação 2:

#incluir
usando namespace std;
Complexo de classe

Privado :
int a, b;
público:
;
void main ()

Complexo com;

Saída:
Como este programa não possui nenhuma declaração de saída, ele não possui nenhuma saída.

Explicação:

Aqui criamos um complexo de classes. Dentro da classe complexa, não criamos nenhum construtor. Mas dentro do Main (), quando criamos um objeto chamado Com, o compilador cria um construtor padrão no arquivo de objeto. É chamado de construtor padrão. Este tipo de construtor não tem codificação dentro de seu corpo.

b. Construtor parametrizado:

Se queremos passar alguns argumentos dentro do construtor, ele é chamado de construtor parametrizado.

Exemplo de programação 3:

#incluir
usando namespace std;
Complexo de classe

privado :
int a, b;
público:
Complexo (int x, int y) // Crie um construtor parametrizado.

a = x;
b = y;
cout<< “ The values of a and b are”
<;
int main ()

Complexo com (3, 4);
retornar 0;

Saída:

Explicação:

O código acima é um exemplo de um construtor parametrizado. Aqui passamos dois números inteiros como argumentos x e y dentro do construtor complexo. Se passarmos alguns valores como 3 e 4 dentro do objeto COM como com (3, 4) da função principal, esse valor vai para o construtor.

c. Copy Constructor:

Quando um objeto de classe é copiado para outro objeto da mesma classe, ele é chamado de construtor de cópia. Isso significa que ambos os objetos têm o mesmo valor da mesma classe.

Exemplo de programação 4:

#incluir
Exemplo de classe

int x, y;
público:
Exemplo (int a, int b) // Crie um construtor dentro da classe.

x = a;
y = b;

Void Display ()

cout << “ The values are : ”
<< x << “ and” << y ;

;
void main ()

Exemplo ex1 (50, 60);
Exemplo ex2 = com1;
Ex2.mostrar() ;

Saída:

Explicação:

Aqui criamos um complexo de nomes de construtores parametrizados. ex1 é um objeto do exemplo de classe. Através do objeto EX1, passamos dois valores, 50 e 60. Em exibição (), a saída será mostrada em 50 e 60.

Agora copiamos o valor de ex1 para outro objeto, ex2. O resultado será o mesmo se chamarmos a função Display () através do objeto EX2.

Destruidor:

Um destruidor é outro recurso poderoso como o construtor de uma classe. Seu nome será o mesmo que o nome da classe, como vimos no construtor anteriormente. Mas um símbolo chamado tilde (~) é separado um destruidor de um construtor na codificação.

Também não tem tipo de retorno como construtor e nunca pode ser estático.
A principal diferença entre construtor e destruidor é que o destruidor não leva argumentos como o construtor. Isso significa que a sobrecarga não é possível no caso de um destruidor.

Exemplo de programação 5:

#incluir
usando namespace std;
Complexo de classe

privado :
int a, b;
público:
~ Complex () // Crie um destruidor dentro da classe.

cout<< “ Example of a Destructor\n ” ;

;
Void Fun ()

Complexo des; // criando o objeto da classe

int main ()

diversão() ;
retornar 0;

Saída:

Explicação:

Aqui criamos um complexo de nomes de destruidores sob a classe complexa. Agora temos que saber qual é o motivo pelo qual usamos o destruidor. Destruidor é invocado implicitamente pelo compilador quando um objeto destruirá. É um equívoco que os destruidores destruem a memória do objeto. O fato é que o destruidor é o último método que executa. Depois que esse objeto certamente será destruído, o que significa em main () quando a diversão () é executada, o objeto deve ser destruído.

Conclusão:

Depois de discutir o conceito de construtor e destruidor, concluiremos que o construtor e o destruidor são importantes funções membros da classe em c++. Tanto o construtor quanto o destruidor aprimoram as características da classe com muita eficiência.