【发布时间】:2014-02-11 14:46:56
【问题描述】:
我想在运行时在主方法中创建未知数量的对象,每个对象都有一个特定的对象名称。对象应该存在直到程序结束(主方法结束)。请注意,在我的例子中,对象是字段。
我想过这样的解决方案:
for ( i=1 ; i <= NumberOfObjects ; i++)
{
if (i==1)
{
MyClass *ObjectName1 = new MyClass();
}
if (i==2)
{
MyClass *ObjectName2 = new MyClass();
}
. //more if statements for more objects
.
.
} //for loop closed
问题:
我不认为这个解决方案很好,因为创建的对象的数量仍然会限制在 for 循环中的 if 语句中。有更好的解决方案吗?
循环中指针的范围:退出 if 块时,指针超出范围。之后如何访问带有“新”创建的对象?
【问题讨论】:
-
你能详细说明你为什么要这样做吗?几乎可以肯定有更好的方法。
-
只需使用 std::map 并使用生成的密钥存储每个新对象,该密钥将“命名”它。
-
无意冒犯,但我很想对这个问题投赞成票,因为它是惊人的新手:-D
-
你不能,在c++中编译后的对象没有名字
-
@JBentley:需要创建的对象(字段)的数量是从文件中读取的,这个数量由程序用户决定......
标签: c++ loops scope object-lifetime