Introdução ao Copy Constructor in C ++

As linguagens de programação nos fornecem vários recursos que podem ser aproveitados para desenvolver o aplicativo. No caso de idiomas de nível médio, os recursos podem ser menos comparados aos idiomas de alto nível, mas as opções que eles oferecem são amplas para desenvolver aplicativos significativos. Nesta seção, aprenderemos sobre os construtores de cópia. O construtor pode ser definido como a função especial que tem o nome igual ao da classe na qual foi definido. O construtor é chamado automaticamente quando o objeto dessa classe é inicializado. Pode-se dizer que inicializando o objeto se a classe chamar implicitamente o construtor. Se o construtor estiver sobrecarregado, nesse caso, os valores deverão ser passados ​​junto com o objeto durante a inicialização. Aqui, o tipo de construtor que aprenderemos é muito exclusivo e conhecido como copy Constructor. Este construtor trabalha usando outros objetos em vez de valores normais.

Como o Copy Constructor funciona em C ++?

O Copy Constructor pode ser definido como o tipo especial de construtor usado para declarar o objeto e inicializá-lo usando outros objetos. O construtor normal chamado quando o objeto dessa classe é inicializado. Se o construtor estiver sobrecarregado com vários parâmetros, a inicialização do objeto e a transmissão do mesmo número de argumentos chamarão o parâmetro overload. Como o construtor de cópia é o sobrecarregado, ele pode ser chamado quando o objeto é inicializado usando o argumento e o argumento precisa passar o valor do objeto em vez de qualquer valor normal.

Depois que o valor recebido pelo parâmetro do construtor sobrecarregado for encontrado, um objeto, o construtor de cópia será chamado e o conjunto de instruções definidas no construtor de cópia começará a ser executado. Antes de usar o construtor de cópias, precisamos criar um objeto da mesma classe. Ele afirma claramente a abordagem de que qualquer programa destinado a implementar o construtor de cópias também deve ter um construtor padrão ou parametrizado para que o objeto possa ser criado, o que ajudará a envolver o construtor de cópias.

O cenário geral pode ser considerado como alavancando um objeto para criar outro objeto. Todos os valores vinculados ao objeto usado para inicializar o objeto pelo construtor de cópia são alocados ao objeto recém-inicializado. Isso significa que, se o valor de qualquer variável for usado pelo primeiro objeto, a mesma variável poderá ser usada pelo objeto inicializado pelo construtor de cópia. O recurso do construtor de cópias é considerado muito importante e torna o desenvolvimento muito conveniente para alguns aplicativos. Seus recursos para usar a referência de objeto da mesma classe ajudam no desenvolvimento do aplicativo que possui o requisito que pode ser cumprido usando apenas o construtor de cópia. Embora não seja aproveitado tão frequentemente quanto o construtor padrão ou parametrizado, é amplo o poder de contribuir para adicionar novas funcionalidades ao aplicativo.

Exemplo

Vamos entender o conceito de construtor de cópias usando o exemplo. Aqui, trabalharemos em um exemplo simples que mostrará como o construtor de cópias funciona e como ele pode acessar os valores que foram vinculados ao objeto usando o qual o novo objeto é criado pelo construtor de cópias. A ilustração abaixo fornece uma idéia de como é diferente chamar o construtor de cópia em comparação com o construtor sobrecarregado normal.

Programa

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

Neste programa, chamamos o construtor parametrizado ignorando o argumento através de a1. O valor passado é um número inteiro, pois o construtor parametrizado foi definido para aceitar apenas números inteiros. Quando o valor 50 é passado para o construtor, o valor foi atribuído à variável denominada var. Em seguida, o objeto a1 foi passado para o construtor de cópias por meio de a2. Depois que a referência do objeto é recebida pelo construtor de cópia, ela vincula o valor alocado ao primeiro objeto ao objeto recém-formado. Este é um exemplo simples para explicar o conceito do construtor de cópias. Pode ser usado em vários outros programas para obter várias funcionalidades no aplicativo.

Resultado:

60

Regras e regulamento para o Copy Constructor em C ++

O Copy Constructor é considerado um pouco diferente do construtor padrão ou parametrizado. Por um lado, onde o construtor normal trabalha usando o valor do tipo de dados comum, por outro lado, o construtor de cópia trabalha usando o objeto criado anteriormente da mesma classe. O que deve ser assegurado ao usar o construtor de cópia é que os parâmetros passados ​​pelo construtor de cópia devem ser usados ​​junto com um sinal de e comercial (&), pois é um caractere especial usado para manter a referência do objeto. Se oe comercial não for usado durante a implementação do construtor de cópia, ele não será mais um construtor de cópia, mas será automaticamente considerado como um construtor parametrizado.

Quando se trata de chamar o construtor de cópia, temos que garantir que o valor passado como argumento leve a referência do objeto em vez de qualquer valor que pertença ao tipo de dados comum. Estas são as poucas coisas que devem ser consideradas com muita clareza ao implementar o construtor de cópias na linguagem de programação C ++. Além disso, toda vez que usamos o construtor de cópia, precisamos garantir que o diferenciamos adequadamente do construtor parametrizado, pois, caso isso ocorra, isso mudará totalmente a funcionalidade do programa e levará à geração de saída incorreta.

Conclusão

O construtor de cópia é considerado como um tipo especial de construtor que funciona usando a referência de objeto da mesma classe. É usado para trazer várias funcionalidades no aplicativo. Se comparado com o construtor padrão, o construtor de cópia não é usado com frequência nos programas simples, mas quando se trata de desenvolver aplicativos complexos que precisam ser implementados no ambiente de produção, o construtor de cópia é usado no local e também torna o desenvolvimento de aplicativos bastante conveniente .

Artigos recomendados

Este é um guia para copiar construtores em C ++. Aqui discutimos a introdução e como o Copy Constructor funciona em C ++, juntamente com as regras e regulamentos para o Copy Constructor em C ++. Você também pode consultar os seguintes artigos para saber mais -

  1. Copiar Construtor em Java
  2. Copiar Construtor em C #
  3. Construtor em C ++
  4. Uso do Construtor em C
  5. Tipos de construtor em C # com implementação de código