如何生成C++动态对象名称?

suV*_*... 7 c++ arrays pointers dynamic object

我想基于用户输入的数量/数量生成许多对象(在C++中).

现在我已经听说过必须使用指针技巧完成,创建一个指向所需Object类型数组的指针,然后动态增加数组的大小(在运行时).

是不是有一种解决方法直接使用像Object1,Object2 ..... ObjectX这样的名称,而不是使用Classname*Object []然后使用数组索引来获取对象?

在任何一种情况下,如果有人能够澄清这个问题,那就太棒了.

谢谢 !

Dmi*_*erg 8

如果你想要动态大小的数组,那么使用std :: vector.您将无法调整内置阵列的大小.如果你想能够通过字符串名称获取对象,那么你应该使用std :: map,它有一个索引器:

std::map<string, Classname> myMap;
myMap["Object1"] = Classname();
Classname newClassname = myMap["Object1"];
Run Code Online (Sandbox Code Playgroud)


Sin*_*ion 6

到目前为止,没有人解释为什么你的想法存在缺陷.C++是一种编译语言,它将源程序变成高效的机器代码.因此,只有在编译时,当您将源代码转换为可执行文件时,程序才能使用您提供变量的名称.之后,当您想要动态创建对象时,这些类型的信息将不再可用.程序只知道机器指令操作数所在的机器地址.