Vraag : Hoe te om mijn diep exemplaar constroctur te schrijven?

Hallo deskundigen,

I am een exemplaaraannemer voor mijn klasse proberen te schrijven maar ik ben een geplakt beetje. De klasse is containerklasse MyContainer die een kaart als privé lid heeft. De kaart wordt gemaakt omhoog van voorwerpen die van de klasse MyElement erft. Er zijn twee klassen die van MyElement Element1 en Element2.

class MyContainer
erven {
.
.
private:
het map *mpContainer;
};

MyContainer:: MyContainer (const MyContainer &rMyContainer)
{
het map:: const_iterator itr = rMyContainer.mpContainer->begin ();
voor (; itr! = rMyContainer.mpContainer->end (); ++itr) {
koordsleutel = (*itr) .first;
MyElement *pTmp = (*itr) .second;
MyElement *pNewElement = nieuw??? (*pTmp);
mpSnapshots->insert (make_pair (sleutel, pNewElement)); />My het probleem
}
}


Thanks experts

Antwoord : Hoe te om mijn diep exemplaar constroctur te schrijven?

(a.) betekent enkel dat u niet statisch voor een binneninterface moet zetten.  Het kan altijd worden van verwijzingen voorzien, terwijl een binnenklasse compileren-tijdfouten zal veroorzaken als het buiten de klassen heeft gebruikt tenzij het statisch is.  Zie eerste codefragment in bijlage.

(b.) dit schijnt vals te zijn, aangezien ik het volgende zonder enige fouten kan doen:

klasse MyClass1 {
      openbare statische klasse MyInnerClass1 {
            openbaar statisch int. a = 0;

            openbare statische nietige methode () {
            }
      }
}

openbare klasse WhiteMage {
      openbare statische nietige leiding (Koord [] 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:
klasse MyClass1 {
	openbare statische interface MyInnerInterface1 {
	}

	openbare interface MyInnerInterface2 {
	}

	openbare statische klasse MyInnerClass1 {
	}

	openbare klasse MyInnerClass2 {
	}
}

//no fouten
klassen MyClass2 instrumenten MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage in http://www.experts-exchange.com/
 */
openbare klasse WhiteMage {
	openbare statische nietige leiding (Koord [] args) {
		MyClass1.MyInnerInterface1 a = nieuwe MyClass2 (); //no fout
		MyClass1.MyInnerInterface2 B = nieuwe MyClass2 (); //no fout
		MyClass1.MyInnerClass1     c = nieuwe MyClass1.MyInnerClass1 (); //no fout

		//ERROR!
		MyClass1.MyInnerClass2     D = nieuwe MyClass1.MyInnerClass2 ();
	}
}
Andere oplossingen  
 
programming4us programming4us