Как генерировать имена Динамических объектов C++?

Если у вас возникли проблемы с новым сайтом MVC из шаблона: 1) Удалите Microsoft.ASPNet.Identity.EntityFramework (вам будет задан вопрос, хотите ли вы удалить Entity Framework - продолжайте и сделайте это.) 2) Установите Entity Framework 3) Переустановите Microsoft.ASPNET.Identity.EntityFramework

Должно работать сейчас.

7
задан suVasH..... 20 June 2009 в 15:44
поделиться

5 ответов

Пока никто не объяснил, почему ваше мышление ошибочно. C ++ - это компилируемый язык, и он идет на все, чтобы превратить исходную программу в эффективный машинный код. По этой причине имена, которые вы даете переменным, доступны программе только во время компиляции, когда вы превращаете ее из исходного кода в исполняемый файл. Впоследствии, когда вы захотите создать объекты динамически, такая информация больше не будет доступна. Программа знает только машинные адреса, по которым расположены операнды машинных команд.

6
ответ дан 6 December 2019 в 07:52
поделиться

Если вам нужен массив с динамическим размером, используйте std :: vector. Вы не сможете изменить размер встроенного массива. Если вы хотите получить объект по строковому имени, вам следует использовать std :: map, у него есть индексатор:

std::map<string, Classname> myMap;
myMap["Object1"] = Classname();
Classname newClassname = myMap["Object1"];
8
ответ дан 6 December 2019 в 07:52
поделиться

Нет, нет. Более того, вам не нужно; используйте std :: vector .

3
ответ дан 6 December 2019 в 07:52
поделиться

Когда я начал программировать 9 лет назад, я задавал себе тот же вопрос. Ответ: вы не можете.

Вы действительно можете использовать массив и динамически изменять его размер, однако использовать вектор stl намного проще (как только вы научитесь его использовать).

3
ответ дан 6 December 2019 в 07:52
поделиться

Вы не можете этого сделать, потому что C ++ не имеет «среды» ( отражение ), где могут находиться переменные (и метаданные). Более того, в C ++ все имена переменных исчезают при компиляции кода.

Для достижения желаемого эффекта можно использовать карту , где ключи представляют собой строки.

1123700]

3
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: