| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> C /C + + Programming >> Content
    Cómo utilizar Copia de constructores en C + +
    A constructor de copia es una función miembro especial dentro de una clase . Se acepta una referencia a un objeto existente del mismo tipo de clase y hace una copia en profundidad de ese objeto . Una copia en profundidad no sólo copia todos los campos miembros , sino también copia la memoria asignada dinámicamente. C + + compiladores construcción copia automáticamente. Es necesario definir un constructor de copia cuando la clase implica memoria dinámica. Cosas que necesitará
    Intermedio C + + conocimiento
    compilador C + + , como Visual Studio 2008
    Ver Más instrucciones
    1

    revisión cuándo llamar a un constructor de copia . Hay tres situaciones: . Cuando se crea un objeto a partir de un objeto existente del mismo tipo , cuando se pasa un objeto por valor a una función y cuando una función devuelve un objeto
    2

    sabe cuando su C + + clase tiene un constructor de copia . Todo se reduce a esto . Si su clase tiene punteros y realiza la asignación de memoria dinámica, entonces usted debe darle un constructor de copia explícito.
    3

    Mira un ejemplo en el que no tiene que definir un constructor para una clase C + + . Clase X sólo ha apilar variables y no hay punteros . Una copia superficial es suficiente para copiar los valores de un objeto existente a un nuevo objeto . El compilador puede hacer esto automáticamente, así que no tienes que definir un constructor de copia para la clase X :
    class X {
    int num;
    público :
    X () : num ( 0 ) { } IMVU: ~ X (); }
    ;
    4

    Estudio de un ejemplo que requiere una definición constructor copia explícito. Como se puede ver, el tamaño de la cadena , N, no es un valor codificado sino que se determina por el usuario. Para crear B de A como en la expresión " ZB ( A) , " hay que indicar al compilador cuánta memoria asignar a B. El lugar para hacerlo es en el constructor de copia , de la siguiente manera :
    clase Z {
    int N;
    char * str ;
    público :
    Z (int n) : N (n ) {
    str = new char [ N] ;
    }
    Z ( Z & otros ) {
    str = new char [ other.GetLen ()] ;
    /data /copia del str del "otro" en el str de "esto"
    }
    ~ Z ( ) {
    delete [ ] str ;
    }
    int Getlen ( ) const {
    regreso N;

    } } ;


    Previous :

    next :
      Artículos relacionados
    ·Cómo Ignorar líneas de comentario en C + + 
    ·Cómo utilizar los archivos esqueléticos en OGRE 
    ·Cómo registrar llamadas a D3D 
    ·Cómo crear un vector de cadenas en C + + 
    ·Funciones de primera clase en Python 
    ·¿Cómo puedo agregar una referencia Web a un # Aplicac…
    ·Cómo utilizar un puntero de función en la matriz de e…
    ·Cómo crear una canalización con nombre 
    ·Cómo leer puntos de un archivo , y gráficos en C + + 
    ·Cómo Hacer un vínculo con Windows Mobile 
      Artículos destacados
    ·El Método de Ronda en Java 
    ·Cómo aumentar el límite de memoria de PHP en Apache 
    ·Analizar método en Java 
    ·Cómo cambiar el orden de clasificación en un Informe …
    ·¿Cómo puedo hacer un juego de carreras de coches en F…
    ·Cómo obtener la fecha del sistema de Python 
    ·Cómo utilizar un código para Inmovilizar columnas 
    ·¿Cómo hacer números aleatorios en Visual Basic 
    ·Cómo conectarse a través de Visual Basic MDB 
    ·Cómo crear Hello World en Microsoft Visual C 2010 Expr…
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com