Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment obtenir graphique en C + + 
  • Quels sont Direct3D et OpenGL 
  • Comment dessiner un String, carré, …
  • Qu'est-ce que Scarlett Fever 
  • Comment utiliser des tableaux en Tur…
  • Qu'est-ce qu'un EOF dans le langage …
  • Visual Basic Tutorial 
  • Quelle est la différence entre le p…
  • Comment coder un C + + Attendez fonc…
  • Comment mettre à jour un DataRow en…
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Comment utiliser des constructeurs de copie en C + +

    Un constructeur de copie est une fonction de membre de spécial à l'intérieur d'une classe. Il accepte une référence à un objet existant du même type de classe et fait une copie complète de cet objet. Une copie en profondeur non seulement copie tous les champs de membres, mais aussi copie toute la mémoire allouée dynamiquement. Compilateurs C + + faire construction de copie automatiquement . Vous devez définir un constructeur de copie lors de votre classe implique la mémoire dynamique . Choses que vous devez
    intermédiaire C + + connaissance
    compilateur C + + , comme Visual Studio 2008
    Show More Instructions
    1

    critique quand il faut appeler un constructeur de copie . Il ya trois situations : . Lors de la création d'un objet à partir d'un objet existant du même type , lorsque vous passez un objet par valeur à une fonction et quand une fonction retourne un objet
    2

    savoir quand votre C + + classe a besoin d'un constructeur de copie . Elle se résume à cela. Si votre classe comporte des pointeurs et il effectue allocation dynamique de mémoire , alors vous devez lui donner un constructeur de copie explicite.
    3

    Regardez un exemple où vous n'avez pas à définir un constructeur pour une classe C + + . Classe X a seulement empiler les variables et pas de pointeurs . Une copie superficielle est suffisante pour copier les valeurs d'un objet existant à un nouvel objet . Le compilateur peut faire cela automatiquement, donc vous n'avez pas à définir un constructeur de copie pour la classe X : class X { int num
    ;
    publique :
    X () : num (0 ) {}
    ~ X (); }
    ;
    4

    étude un exemple qui demande une définition constructeur de copie explicite. Comme vous pouvez le voir, la taille de la chaîne , N, n'est pas une valeur codée en dur mais est déterminée par l'utilisateur. Pour créer B de A comme dans l'expression "ZB (A), " vous devez dire au compilateur la quantité de mémoire à allouer à B. L' endroit pour ce faire est le constructeur de copie , comme suit : classe Z {
    int N;
    char * str ;
    publique :
    Z (int n) : N ( n) {
    str = new char [ N] ;
    }
    Z ( Z et autres) {
    str = new char [ other.GetLen ()] ;
    //copier les données de la str de «l'autre» à la str de " cette "
    }
    ~ Z () {
    delete [] str ; }

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


     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire pour utiliser la commande strlen en C + + 
  • Comment formater nombres de Fibonacci en C + + 
  • Comment remplir une matrice 2D en C 
  • Comment passer Structures de modèles en fonctions en C 
  • Comment faire pour convertir binaire à un nombre entier de programmation C 
  • Comment faire MFC boutons de commande 
  • Comment écrire un fichier Hex 
  • Comment faire pour convertir une chaîne C + + pour LStrHandle 
  • Comment inverser les cordes à l'aide de matrices C sans avoir à traverser plusieurs fois 
  • Quels sont Direct3D et OpenGL 
  • Connaissances Informatiques © http://www.ordinateur.cc