O que é um construtor de cópia?
Um construtor de cópia é uma função especial no C ++ e outros idiomas influenciados pelo C ++, que copia um objeto de codificação. O programador faz isso adicionando a declaração do construtor de cópias e referenciando um objeto. Principalmente, isso beneficia o programador economizando tempo, mas também garante que o programador não insira a codificação do objeto incorretamente. Quando a cópia é feita, ela deve ter um ponteiro de memória diferente ou apontar para a mesma seção em que o objeto original está apontando. Uma das principais desvantagens do uso de construtores de cópias é que eles não podem funcionar de forma independente; Se o objeto original for apagado, a cópia também será. Para fazer isso, o programador deve primeiro usar uma declaração para informar a codificação para executar a função de cópia. O programador também deve fazer referência a outro objeto, para que o objeto já deve ser construído ou haverá no maneira de executar a cópia.
O principal benefício do uso de um construtor de cópias é que ele economiza tempo. Em vez de ter que redigir as mesmas funções e codificar novamente, o programador pode apenas adicionar uma referência e o objeto estará pronto. Isso tem outro benefício oculto na codificação consistente e precisa. Enquanto o objeto original for codificado corretamente, o objeto copiado também terá a codificação correta. Ambos os benefícios são mais aparentes com objetos complexos, mas os programadores também podem se beneficiar da cópia de objetos simples.
Em linguagens C ++, muitas funções requerem um ponteiro de memória. Isso informa a função exatamente onde procurar na memória para obter determinadas informações ou onde ela pode armazenar dados. O programador deve especificar um novo ponteiro de memória quando um construtor de cópia é usado; Caso contrário, os dois objetos usarão o mesmo espaço de memória. Na superfície, isso pode não parecer ruim, mas pode Lead para inconsistências. Por exemplo, se ambos os objetos compartilharem o mesmo ponteiro e um objeto for usado para enviar pedidos de empréstimo enquanto o objeto copiado for feito para enviar pedidos de cartão de crédito, todos os pedidos de cartão de crédito serão armazenados com os pedidos de empréstimo.
Os programadores devem ter cuidado ao apagar um objeto, porque os objetos de construtor de cópias não podem funcionar de forma independente. Se o programador apagar o objeto original, o objeto copiado não terá nada para fazer referência. Sem código para referência, o objeto copiado não será capaz de executar sua tarefa e se tornará inútil.