c++ - 一个类的程序实例化——如何?

标签 c++ variables casting instantiation procedural

假设我有一个对象类,它有一个方法,它只报告实例的 ID 号。通常,我会硬编码对象类的实例化,如“Object obj_1”和方法的调用,如“obj_1.report”

我的问题是如何按程序实例化对象,例如我想创建 n 个对象,obj_1、obj_2 等等,直到 obj_n。当然,我不是在问实际的循环,而是在问如何使用变量实例化类,而是获取变量的值而不是变量的名称并将其添加到 obj_ 前缀。也许与类型转换?另外,我如何通过仅指定 ID 在程序上调用特定实例的方法。我认为实例化和方法调用都将以相同的方式工作,但是作为一个新手,我很难弄清楚如何在旅途中准确地完成它而不是硬编码。

提前致谢!

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

最佳答案

我能想到的最佳解决方案是将您的对象存储在 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();
}

关于c++ - 一个类的程序实例化——如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7740700/

相关文章:

c# - 将字符串转换为 Short

c++ - vector<string> 并找到 : template argument deduction/substitution failed?

c++ - 从类中返回指向 unique_ptr 的裸指针是否完全可以

c++ - 泛型成员函数指针作为模板参数

php - Yii 验证下拉列表 onchange

ios - 数组!当我使用 NSString 时与 UInt8 不同

c++ - Qt 异步调用 : how to run something after an async call has finished its job

ios - 我应该对稍后变异的对象使用 var 或 let 吗?

mysql - codeigniter 和 mysql 用户定义的变量不起作用

c# - C#中的Cast操作优先级