程序实例化一个类 - 如何?

时间:2011-10-12 13:19:01

标签: c++ variables casting instantiation procedural

假设我有一个类Object,其中一个方法只报告实例的ID号。通常,我会像“对象obj_1”那样硬编码Object类的实例化,并调用像“obj_1.report”这样的方法

我的问题是我如何在程序上实例化对象,例如我想创建n个对象,去obj_1,obj_2等等到obj_n。自然我不是在询问实际循环,而是关于如何使用变量实例化类,但是获取变量的值而不是其名称并将其添加到obj_前缀。也许是铸造?另外,我如何通过仅指定ID来程序性地调用特定实例的方法。我认为实例化和方法调用都会以同样的方式工作,但作为一个新手,我很难确定在运行中如何完成它而不是硬编码。

提前致谢!

编辑:我对c ++语法感兴趣

1 个答案:

答案 0 :(得分:0)

我能想到的最佳解决方案是将您的对象存储在Map中,您的ID(“obj_1”,“obj_2”等)是引用这些实例的键。

Java(因为你没有指定语言),示例代码看起来像这样:

Map<String, Object> objMap = new HashMap<String, Object>();
for(int i = 1; i <= 10; i++) {
    objMap.put("obj_" + 1, new Object());
}

for(int i = 1; i <= 10; i++) {
    if(objMap.containsKey("obj_" + i))
        objMap.get("obj_" + i).report();
}