【发布时间】:2019-12-24 15:35:11
【问题描述】:
我正在尝试编写一个函数,该函数可以使用动态分配创建某个类的大量对象。
假设我有一个类ExampleClass,我可以创建一个名为“A1”的对象object1,如下所示:
#include <iostream>
using namespace std;
class ExampleClass{
public:
string name;
ExampleClass(string aName){
this->name = aName;
}
};
int main() {
ExampleClass* object1 = new ExampleClass("A1");
cout<<"I am "<< object1->name <<"."<< endl;
return 0;
}
我如何编写一个函数,该函数接受N、一些所需的对象,并自动创建ExampleClass 类的N 对象?
所以函数看起来应该是这样的:
void createObjects(int N){
//Creating N objects of the class Example Class
for(int i=0;i<=N;i++){
ExampleClass* a_new_object_for_each_i = new ExampleClass("a_new_name_for_each_i");
}
}
如果N=1,000,这个函数应该能够创建类似对象的东西:object1,object2,...,object1000,名称分别为“A1”、“A2”、...、“A1000”。
请注意,对象的名称和字符串名称不能作为函数的参数提供。
有人对如何做到这一点有任何想法吗?
【问题讨论】:
-
只需使用
std::vector<ExampleClass>并从您的函数中返回。 -
@πάνταῥεῖ 谢谢,但这并不能解决自动为对象和字符串名称分配名称的问题。
-
@Kivis 您可以使用字符串连接轻松生成名称,您的问题是什么?
-
@πάνταῥεῖ 我知道如何使用字符串,但不知道如何创建将在我的玩具示例中放入 object1 位置的任何内容。它不是一个字符串。
标签: c++ function class oop object