Pergunta : Como escrever meu constroctur da cópia profunda?

Olá! os peritos,

I am que tenta escrever um construtor da cópia para minha classe mas mim são um bocado furado. A classe é a classe MyContainer do recipiente que tem um mapa como um membro confidencial. O mapa é compo fora dos objetos que está da classe MyElement. Havido duas classes que herdam de MyElement Element1 e Element2.

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

MyContainer::
de MyContainer (&rMyContainer do const MyContainer) {
que map:: itr do const_iterator = rMyContainer.mpContainer->begin ();
para (; itr! = rMyContainer.mpContainer->end (); ++itr) {chave da corda do
= (*itr) .first; *pTmp do
MyElement = (*itr) .second; *pNewElement do
MyElement = novo??? (*pTmp); mpSnapshots->insert do
(make_pair (chave, pNewElement)); o problema do

My do
do
}} é que eu não compreendo como eu devo saber que construtor da cópia eu devo chamar para o MyElement desde que eu tenho duas classes que herdam dele Element1 e Element2. Ambo poderia ser parte do mapa do mpContainer que é um membro da classe de MyContainer. Eu tenho que usar algum tipo do exemplo de ou que? Talvez está atrasado mas eu não posso figurá-lo out.

Thanks experts
class= do

Resposta : Como escrever meu constroctur da cópia profunda?

(A.) Apenas significa que você não tem que põr a estática na frente de uma relação interna.  Pode sempre ser provida, quando uma classe interna produzirá erros compile-time se usou a parte externa das classes a menos que for de estática.  Ver a primeira pequena notícia de código unida.

(B.) Isto parece ser falso, como eu posso fazer o seguinte sem nenhuns erros:

classe MyClass1 {
      classe de estática pública MyInnerClass1 {
            estática pública int a = 0;

            método vago de estática público () {
            }
      }
}

classe pública WhiteMage {
      vácuo público da estática principal (args da corda []) {
            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 {
	relação de estática pública MyInnerInterface1 {
	}

	relação pública MyInnerInterface2 {
	}

	classe de estática pública MyInnerClass1 {
	}

	classe pública MyInnerClass2 {
	}
}

erros de //no
a classe MyClass2 executa MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage em http://www.experts-exchange.com/
 *
classe pública WhiteMage {
	vácuo público da estática principal (args da corda []) {
		MyClass1.MyInnerInterface1 a = MyClass2 novo (); erro de //no
		MyClass1.MyInnerInterface2 b = MyClass2 novo (); erro de //no
		MyClass1.MyInnerClass1     c = MyClass1.MyInnerClass1 novo (); erro de //no

		//ERROR!
		MyClass1.MyInnerClass2     d = MyClass1.MyInnerClass2 novo ();
	}
}
Outras soluções  
 
programming4us programming4us