Questione : Come scrivere il mio constroctur della copia profonda?

Ciao gli esperti, il

I che prova a scrivere un costruttore della copia per il mio codice categoria ma io sono una punta attaccata. Il codice categoria è codice categoria MyContainer del contenitore che ha un programma come membro riservato. Il programma si compone fuori dagli oggetti che sta ereditando dal codice categoria MyElement. Ci sono due codici categoria che ereditano da MyElement Element1 e Element2.

class MyContainer
{
.
.
private:
che map;
};

MyContainer::
{
che map di MyContainer (&rMyContainer del const MyContainer):: itr del const_iterator = rMyContainer.mpContainer->begin ();
per (; itr! = rMyContainer.mpContainer->end (); ++itr) {chiave della stringa del
= (*itr) .first; *pTmp del
MyElement = (*itr) .second; *pNewElement del
MyElement = nuovo??? (*pTmp); mpSnapshots->insert del
(make_pair (chiave, pNewElement)); il problema del

My del
del
}} è che non capisco come dovrei conoscere quale costruttore della copia dovrei richiedere il MyElement poiché ho due codici categoria che ereditano da esso Element1 e Element2. Di cui tutt'e due potrebbe fa parte del programma del mpContainer che è un membro del codice categoria di MyContainer. Devo usare un certo genere di caso di o che cosa? Forse è tardi ma non posso calcolarlo out.

Thanks experts
class= del

Risposta : Come scrivere il mio constroctur della copia profonda?

(A.) Significa appena che non dovete mettere l'elettricità statica davanti ad un'interfaccia interna.  Può riferirsi sempre, mentre un codice categoria interno produrrà gli errori compile-time se abbia usato la parte esterna dei codici categoria a meno che sia statico.  Vedere il primo frammento di codice allegato.

(B.) Ciò sembra essere falsa, come posso fare quanto segue senza alcuni errori:

codice categoria MyClass1 {
      codice categoria statico pubblico MyInnerClass1 {
            elettricità statica pubblica int a = 0;

            metodo vuoto statico pubblico () {
            }
      }
}

codice categoria pubblico WhiteMage {
      vuoto pubblico di elettricità statica principale (args della stringa []) {
            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:
codice categoria MyClass1 {
	interfaccia statica pubblica MyInnerInterface1 {
	}

	interfaccia pubblica MyInnerInterface2 {
	}

	codice categoria statico pubblico MyInnerClass1 {
	}

	codice categoria pubblico MyInnerClass2 {
	}
}

errori di //no
il codice categoria MyClass2 realizza MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage a http://www.experts-exchange.com/
 */
codice categoria pubblico WhiteMage {
	vuoto pubblico di elettricità statica principale (args della stringa []) {
		MyClass1.MyInnerInterface1 a = nuovo MyClass2 (); errore di //no
		MyClass1.MyInnerInterface2 b = nuovo MyClass2 (); errore di //no
		MyClass1.MyInnerClass1     c = nuovo MyClass1.MyInnerClass1 (); errore di //no

		//ERROR!
		MyClass1.MyInnerClass2     d = nuovo MyClass1.MyInnerClass2 ();
	}
}
Altre soluzioni  
 
programming4us programming4us