Если у вас возникли проблемы с новым сайтом MVC из шаблона: 1) Удалите Microsoft.ASPNet.Identity.EntityFramework (вам будет задан вопрос, хотите ли вы удалить Entity Framework - продолжайте и сделайте это.) 2) Установите Entity Framework 3) Переустановите Microsoft.ASPNET.Identity.EntityFramework
Должно работать сейчас.
Пока никто не объяснил, почему ваше мышление ошибочно. C ++ - это компилируемый язык, и он идет на все, чтобы превратить исходную программу в эффективный машинный код. По этой причине имена, которые вы даете переменным, доступны программе только во время компиляции, когда вы превращаете ее из исходного кода в исполняемый файл. Впоследствии, когда вы захотите создать объекты динамически, такая информация больше не будет доступна. Программа знает только машинные адреса, по которым расположены операнды машинных команд.
Если вам нужен массив с динамическим размером, используйте std :: vector. Вы не сможете изменить размер встроенного массива. Если вы хотите получить объект по строковому имени, вам следует использовать std :: map, у него есть индексатор:
std::map<string, Classname> myMap;
myMap["Object1"] = Classname();
Classname newClassname = myMap["Object1"];
Нет, нет. Более того, вам не нужно; используйте std :: vector
.
Когда я начал программировать 9 лет назад, я задавал себе тот же вопрос. Ответ: вы не можете.
Вы действительно можете использовать массив и динамически изменять его размер, однако использовать вектор stl намного проще (как только вы научитесь его использовать).
Вы не можете этого сделать, потому что C ++ не имеет «среды» ( отражение ), где могут находиться переменные (и метаданные). Более того, в C ++ все имена переменных исчезают при компиляции кода.
Для достижения желаемого эффекта можно использовать карту , где ключи представляют собой строки.
1123700]