Question : Comment écrire mon constroctur de copie profonde ?

Salut les experts, le

I AM essayant d'écrire un constructeur de copie pour ma classe mais moi suis un peu coincé. La classe est une classe MyContainer de récipient qui a une carte en tant que membre privé. La carte se compose outre des objets qui hérite de la classe MyElement. Il y a deux classes qui héritent de MyElement Element1 et Element2.

class MyContainer
{
.
.
private :
map ;
} ;

MyContainer : :
{
map de MyContainer (&rMyContainer de const MyContainer) : : itr du const_iterator = rMyContainer.mpContainer->begin () ;
pour (; itr ! = rMyContainer.mpContainer->end () ; ++itr) {clef de corde de
= (*itr) .first ; *pTmp du
MyElement = (*itr) .second ; *pNewElement du
MyElement = nouveau ? ? ? (*pTmp) ; mpSnapshots->insert du
(make_pair (clef, pNewElement)); le problème du

My du
du
}} est que je ne comprends pas comment je devrais connaître quel constructeur de copie je devrais réclamer le MyElement puisque j'ai deux classes qui héritent de lui d'Element1 et d'Element2. Qui pourrait faire partie de la carte de mpContainer qui est un membre de la classe de MyContainer. Est-ce que je dois employer un certain genre d'exemple de ou ce qui ? Peut-être il est tard mais je ne peux pas le figurer out.

Thanks experts
class= de

Réponse : Comment écrire mon constroctur de copie profonde ?

(A.) Signifie juste que vous ne devez pas mettre la charge statique devant une interface intérieure.  Elle peut toujours être mise en référence, alors qu'une classe intérieure produira des erreurs au moment de la compilation si elle a employé l'extérieur des classes à moins qu'elle soit statique.  Voir le premier extrait de code joint.

(B.) Ceci semble être faux, comme je peux ne faire le suivant sans aucune erreur :

classe MyClass1 {
      classe statique publique MyInnerClass1 {
            charge statique publique international a = 0 ;

            méthode vide statique publique () {
            }
      }
}

classe publique WhiteMage {
      vide public de charge statique principal (args de corde []) {
            MyClass1.MyInnerClass1.a = 45 ;
            MyClass1.MyInnerClass1.method () ;
      }
}
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
classe MyClass1 {
	interface statique publique MyInnerInterface1 {
	}

	interface publique MyInnerInterface2 {
	}

	classe statique publique MyInnerClass1 {
	}

	classe publique MyInnerClass2 {
	}
}

erreurs de //no
la classe MyClass2 met en application MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage chez http://www.experts-exchange.com/
 *
classe publique WhiteMage {
	vide public de charge statique principal (args de corde []) {
		MyClass1.MyInnerInterface1 a = nouveau MyClass2 () ; erreur de //no
		MyClass1.MyInnerInterface2 b = nouveau MyClass2 () ; erreur de //no
		MyClass1.MyInnerClass1     c = nouveau MyClass1.MyInnerClass1 () ; erreur de //no

		//ERROR !
		MyClass1.MyInnerClass2     d = nouveau MyClass1.MyInnerClass2 () ;
	}
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us