Frage : Wie man mein tiefe Kopie constroctur schreibt?

Hallo sind Experten, das

I morgens versuchend, einen Kopienerbauer für meine Kategorie zu schreiben aber ich eine gehaftete Spitze. Die Kategorie ist Behälterkategorie MyContainer, die ein Diagramm als privates Mitglied hat. Das Diagramm gebildet weg von den Gegenständen, das von der Kategorie MyElement übernimmt. Es gibt zwei Kategorien, die von MyElement Element1 und Element2.

class MyContainer
übernehmen {
.
.
private: map, MyElement*> *mpContainer;
};

MyContainer:: MyContainer (const MyContainer &rMyContainer)
{map, MyElement*>:: const_iterator itr = rMyContainer.mpContainer->begin ();
für (; itr! = rMyContainer.mpContainer->end (); ++itr) {
Schnurschlüssel = (*itr) .first;
MyElement *pTmp = (*itr) .second;
MyElement *pNewElement = neu??? (*pTmp);
mpSnapshots->insert (make_pair (Schlüssel, pNewElement));
}
}

My Problem ist, dass ich nicht verstehe, wie ich wissen sollte, welchen Kopienerbauer ich das MyElement fordern sollte, da ich zwei Kategorien habe, die von ihm Element1 und Element2 übernehmen. Das ein Teil des mpContainer Diagramms sein könnte, das ein Mitglied der MyContainer Kategorie ist. Muss ich irgendeine Art Fall von verwenden, oder was? Möglicherweise ist er spät, aber ich kann ihn nicht darstellen out.

Thanks experts

Antwort : Wie man mein tiefe Kopie constroctur schreibt?

(A.) Bedeutet gerade, dass Sie Static vor einer inneren Schnittstelle nicht setzen müssen.  Sie kann immer bezogen werden, während eine innere Kategorie Kompilierzeitstörungen produziert, wenn sie Außenseite der Kategorien benutzt, es sei denn sie statisch ist.  Das erste angebrachte Code-Stückchen sehen.

(B.) Dieses scheint, falsch zu sein, wie ich das folgende ohne irgendwelche Störungen tun kann:

Kategorie MyClass1 {
      allgemeine statische Kategorie MyInnerClass1 {
            allgemeiner Static int a = 0;

            allgemeine statische leere Methode () {
            }
      }
}

allgemeine Kategorie WhiteMage {
      allgemeine Staticlücke hauptsächlich (Schnur [] args) {
            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:
Kategorie MyClass1 {
	allgemeine statische Schnittstelle MyInnerInterface1 {
	}

	allgemeine Schnittstelle MyInnerInterface2 {
	}

	allgemeine statische Kategorie MyInnerClass1 {
	}

	allgemeine Kategorie MyInnerClass2 {
	}
}

//no-Störungen
Kategorie MyClass2 einführt MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage bei http://www.experts-exchange.com/
 *
allgemeine Kategorie WhiteMage {
	allgemeine Staticlücke hauptsächlich (Schnur [] args) {
		MyClass1.MyInnerInterface1 a = neues MyClass2 (); //no-Störung
		MyClass1.MyInnerInterface2 b = neues MyClass2 (); //no-Störung
		MyClass1.MyInnerClass1     c = neues MyClass1.MyInnerClass1 (); //no-Störung

		//ERROR!
		MyClass1.MyInnerClass2     d = neues MyClass1.MyInnerClass2 ();
	}
}
Weitere Lösungen  
 
programming4us programming4us