Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como usar cópia Construtores em C + +
Um construtor de cópia é uma função membro especial dentro de uma classe . Ele aceita uma referência a um objeto existente com o mesmo tipo de classe e faz uma cópia profunda do objeto. Uma cópia profunda não apenas copia todos os campos de membro , mas também copia qualquer memória alocada dinamicamente . Compiladores de C + + não copiar construção automaticamente. Você precisa definir um construtor de cópia quando sua classe envolve memória dinâmica. Coisas que você precisa
+ compilador C + Intermediário
conhecimento C + +, como o Visual Studio 2008
Show Mais instruções
1

comentário quando chamar um construtor de cópia . Existem três situações: . Ao criar um objeto a partir de um objeto existente do mesmo tipo , quando você passar um objeto por valor para uma função e quando uma função retorna um objeto
2

Saiba quando seu C + + classe precisa de um construtor de cópia . Tudo se resume a isso. Se sua classe tem ponteiros e ele executa alocação dinâmica de memória , então você deve dar-lhe um construtor de cópia explícita.
3

Olhe um exemplo onde você não tem que definir um construtor para uma classe C + +. Classe X tem apenas empilhar variáveis ​​e sem ponteiros. Uma cópia superficial é suficiente para copiar os valores de um objeto existente para um novo objeto. O compilador pode fazer isso automaticamente, assim você não tem que definir um construtor de cópia para a classe X :
class X {
int num;
público :
X () : num (0) { }
~ X (); }
;
4

Estude um exemplo que requer uma definição de cópia construtor explícito . Como você pode ver , o tamanho da string, N, não é um valor embutido , mas é determinado pelo usuário. Para criar B de A como na expressão " ZB (A) , " você tem que dizer ao compilador quanta memória alocar para B. O lugar para fazer isso é no construtor de cópia , como segue:
classe Z {
int N;
char * str;
público :
Z (int n): N ( n) {
str = new char [ N] ; }

Z ( Z & other ) {
str = new char [ other.GetLen () ];
//copiar dados do str do "outro" para o str de "isto"
}
~ Z () {
delete [ ] str; }

int GetLen () const {
retornar N;
}
};


Anterior :

Próximo : No
  Os artigos relacionados
·Como chamar o Visual Basic DLL de C 
·Como definir o Gridview Datakey no Código 
·O que é CTS em ASP.NET 
·Como passar variáveis ​​do bloco comum a C 
·Como programar Game Boy Advance Jogos 
·Como alterar cores em C + + 
·Como externo um membro estático 
·Como fazer uma ligação com Windows Mobile 
·Como usar Fortran em C + + Linux 
·Base de SDK xCode Faltando 
  Artigos em destaque
·Função recursiva em C 
·C #: Como obter ou ajustar a data 
·Como armazenar uma entrada em um vetor 
·Que aplicações Use Visual C 
·O que é saturação de buffer 
·Como fazer um buffer Hex Do Char C 
·Como fazer Input Apenas um Integer em C + + 
·Como fazer um Bounce objeto em C # 
·Como imprimir um triângulo em C 
·Como externo um membro estático 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados