我想要的是一个函数,每次调用它时都会生成一个新的不同实例(使用不同的名称......)
像这样:
void person::new_person(){
person *(id+index) = new person(name_temp, age_temp, quote_temp);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用......我不知道我该怎么做...(索引是每次我创建一个新实例时加一个).我意识到每次我制作指针并在其上添加空格,就像这样:
int*p;
*(p+1) = 5;
Run Code Online (Sandbox Code Playgroud)
它编译,但在运行时冻结(我把它得到的记忆不允许),所以"人*(id +索引)"也可能不起作用.你怎么看?
尝试将persons 保存在标准容器中:
std::vector<person> people;
void person::new_person(std::string name, int age, std::string quote){
people.push_back(person(name, age, quote));
}
Run Code Online (Sandbox Code Playgroud)
你的意思是这样的?
#include <string>
person make_person()
{
static unsigned i = 0;
return person(std::to_string(i++));
}
Run Code Online (Sandbox Code Playgroud)