Copiar Array Construtor em C ++

Copiar Array Construtor em C ++
Construtores de cópia são construtores que estão sendo usados ​​para duplicar o objeto atual de uma classe específica. Geralmente está no formato z (z &), onde z é o nome da classe. Todas as classes têm um construtor de cópia padrão especificado pelo compilador. O construtor de cópias é idêntico ao construtor padrão, com a exceção de que o argumento seria outro elemento de matriz, e a matriz criada recentemente foi ajustada às dimensões do tipo de dados do parâmetro e declarado para o conteúdo da matriz do parâmetro. Ao usar exemplos diferentes, discutiremos o construtor de cópias e suas categorias neste artigo.

Usando o construtor de cópias

Em C ++, o construtor de cópias é usado para duplicar o conteúdo de um objeto para o outro. Agora, vejamos um exemplo para demonstrar como usar o construtor de cópias profundas.

Primeiro de tudo, integramos o arquivo de cabeçalho para funcionalidades de entrada e saída. Depois disso, usamos o espaço de nome padrão. Agora, vamos declarar uma 'sala de aula'. Inicializamos o comprimento e a largura da sala e o colocamos em particular. O tipo de dados do comprimento e largura é 'duplo' aqui.

Agora, declaramos o 'comprimento' e a 'largura' da variável usando o construtor parametrizado. Aqui, passamos esses parâmetros para o construtor 'quarto' e isso deve ser público. Além disso, utilizamos um construtor de cópias. Copiamos o conteúdo do argumento 'obj'. A função calculatearea () está sendo chamada para encontrar a área da sala multiplicando o valor do comprimento pelo valor da altura.

Na etapa subsequente, declaramos a função principal (). Aqui, construímos um objeto da classe 'Room' e também especificamos os valores de seu comprimento e largura. Agora, você só precisa copiar os dados de 'Room1' para 'Room2'. Depois disso, utilizamos 'cout' para exibir as áreas de ambos os quartos. No final, o retorno0 é usado para encerrar o programa.

Use o construtor de cópias rasas

Quando uma classe não interage dinamicamente com a alocação de memória, o construtor de cópias rasas está sendo usado. Dois objetos no construtor de cópias rasas se refeririam a um endereço de memória semelhante. As referências a itens reais são replicadas em uma cópia rasa. Um construtor de cópia padrão é especificado pelo compilador. É uma réplica de um pouco de uma coisa. Abaixo, uma instância está sendo usada para ilustrar a noção de um construtor de cópias rasas.

No início do programa, introduzimos duas bibliotecas necessárias e . Junto com isso, também utilizamos um espaço de nome padrão. Agora, criamos uma classe chamada 'computador'. Construímos um ponteiro da classe e definimos seu tipo de dados 'caractere'.

Declaramos publicamente a função da classe 'computador' e aqui passamos o construtor definido como um parâmetro para esta função. Criamos uma alocação de memória dinâmica aqui e a definimos igual à variável do ponteiro. Permite ao usuário criar uma memória para um atributo ou até mesmo uma matriz no programa.

Além disso, aplicamos a função void concatenate (). Para concatenar duas cordas, utilizamos o método strcat (). Agora, declaramos um construtor de cópias da classe 'computador'. Para mostrar a saída, utilizamos a função void Display () junto com a instrução 'Cout'. Agora é hora de chamar a função principal (). Utilizamos o construtor de cópias dentro do corpo da função principal (). É denominado construtor porque está sendo utilizado para gerar um objeto.

Portanto, o construtor de cópias como o nome indica, gera um novo objeto que é uma réplica idêntica da cópia original. Criamos dois objetos e especificamos os valores desses objetos. Em seguida, aplicamos a função Display () individualmente nesses objetos para obter o resultado.

Na próxima etapa, A1 é tentador para concatenar, portanto, aplicamos o 'A1.função concatenate (). Aqui, também definimos um valor 'tecnologia' para concatenação. Utilizamos novamente o método Display () para obter a saída. Agora, terminamos o programa usando 'Return 0'.

Use o construtor de cópias profundas

Cópia profunda requer um espaço de memória exclusivo para dados duplicados. Como resultado, o original e a cópia são distintos. As modificações implementadas em uma região de memória não têm impacto na réplica. Utilizaríamos um construtor de cópias definido pelo usuário enquanto construía memória dinâmica com ponteiros. Ambas as entidades se refeririam a locais separados na memória.

Além disso, fazemos uso do espaço de nome padrão. Agora faremos uma aula chamada 'ProgrammingLanguage.'Criamos um ponteiro de classe e definimos seu tipo de dados para' personagem.'Então, definimos a função da classe' ProgrammingLanguage 'como pública e fornecemos o construtor especificado como um argumento.

Aqui, construímos uma alocação de memória dinâmica e a alocamos equivalente à variável de ponteiro. Ele nos permite adquirir armazenamento para um conjunto de dados ou uma matriz no programa. A função é chamada aqui, e o construtor da classe ProgrammingLanguage é dado como um parâmetro. Estamos utilizando o método void concatenate ().

Além disso, utilizaremos a técnica strcat () para concatenar duas cordas juntas. Agora, criamos um construtor de cópias da classe 'ProgrammingLanguage'. Os dados são exibidos usando o método void display () e o comando 'cout'. A função principal () agora será chamada. No corpo da função principal (), usamos o construtor de cópias. Isso duplica um objeto predefinido. Portanto, normalmente não gostaríamos de modificar o objeto real. Fazemos dois objetos e atribuímos o objeto 'a1' o valor 'python.'O objeto' A2 'é igual ao objeto' A1 'na próxima fase.

Para obter a saída, usamos o método de exibição () em cada um desses objetos individualmente. Agora, utilizamos o comando 'retornar 0' para sair do programa.

Conclusão

Neste artigo, esclarecemos o funcionamento de um construtor de cópias na linguagem C ++. Sempre que um objeto é feito, um construtor é uma forma específica de uma classe derivada que é declarada instantaneamente. Construtores de cópia são aqueles construtores que serão utilizados para replicar um elemento de uma classe especificada que já existe. Também observamos como usar o construtor de cópias rasas e o construtor de cópias profundas com a ajuda de diferentes instâncias.