Вопрос : Как написать мое constroctur глубокого экземпляра?

Hi специалисты,

I am пытаясь написать конструктор экземпляра для моего типа но я будут вставленным битом. Типом будет тип MyContainer контейнера имеет карту как приватный член. Карта составлена с предметов наследует от типа MyElement. 2 типа наследуют от MyElement Element1 и Element2.

class MyContainer
{
.
.
private:
map;
};

MyContainer::
MyContainer (&rMyContainer const MyContainer) {
map:: itr const_iterator = rMyContainer.mpContainer->begin ();
для (; itr! = rMyContainer.mpContainer->end (); ++itr) {ключ шнура
= (*itr) .first; *pTmp
MyElement = (*itr) .second; *pNewElement
MyElement = ново??? (*pTmp); mpSnapshots->insert
(make_pair (ключ, pNewElement)); проблема

My

}} что я не понимаю как я должен знать которое конструктор экземпляра я должен вызвать для MyElement в виду того что я имею 2 типа наследуют от его Element1 и Element2. Smogло быть частью карты mpContainer будет членом типа MyContainer. Я должен использовать некоторый вид примера или? Возможно он последний но я не могу вычислять его out.

Thanks experts
class=

Ответ : Как написать мое constroctur глубокого экземпляра?

(A.) Как раз намеревает что вы не должны положить static перед внутренней поверхностью стыка.  Ее можно всегда снабжать ссылками, пока внутренний тип произведет compile-time ошибки если он использовал снаружи типов, то если он не быть статическим.  См. первый прикрепленный фрагмент Кодего.

(B.) Это кажется, что будет ложно, по мере того как я могу сделать следующий без любых ошибок:

тип MyClass1 {
      общественный статический тип MyInnerClass1 {
            общественный static int a = 0;

            общественный статический пустой метод () {
            }
      }
}

общественный тип WhiteMage {
      общественное свободное пространство static главным образом (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:
тип MyClass1 {
	общественная статическая поверхность стыка MyInnerInterface1 {
	}

	общественная поверхность стыка MyInnerInterface2 {
	}

	общественный статический тип MyInnerClass1 {
	}

	общественный тип MyInnerClass2 {
	}
}

ошибки //no
тип MyClass2 снабжает MyClass1.MyInnerInterface1, MyClass1.MyInnerInterface2 {
}

/**
 *
 * @author WhiteMage на http://www.experts-exchange.com/
 *
общественный тип WhiteMage {
	общественное свободное пространство static главным образом (args шнура []) {
		MyClass1.MyInnerInterface1 a = новое MyClass2 (); ошибка //no
		MyClass1.MyInnerInterface2 b = новое MyClass2 (); ошибка //no
		MyClass1.MyInnerClass1     c = новое MyClass1.MyInnerClass1 (); ошибка //no

		//ERROR!
		MyClass1.MyInnerClass2     d = новое MyClass1.MyInnerClass2 ();
	}
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us