如果你想要动态大小的数组,那么使用std :: vector.您将无法调整内置阵列的大小.如果你想能够通过字符串名称获取对象,那么你应该使用std :: map,它有一个索引器:
std::map<string, Classname> myMap;
myMap["Object1"] = Classname();
Classname newClassname = myMap["Object1"];
Run Code Online (Sandbox Code Playgroud)
到目前为止,没有人解释为什么你的想法存在缺陷.C++是一种编译语言,它将源程序变成高效的机器代码.因此,只有在编译时,当您将源代码转换为可执行文件时,程序才能使用您提供变量的名称.之后,当您想要动态创建对象时,这些类型的信息将不再可用.程序只知道机器指令操作数所在的机器地址.