我正在尝试在向量中创建现有对象的列表。这是我到目前为止所拥有的:
void Program::addClient(string name){
vector<Client> *ptr = &(impl->clients);
Client cl(name);
ptr->push_back(cl);
}
问题是析构函数将被调用两次:第一次,当方法 addClient 结束时,第二次,这个方法类的析构函数将被调用。因此,我得到一个错误(显然)。所以我想写这样的东西:
void Program::addCategory(string name){
vector<Category> *ptr = &(impl->categories);
Category *c = new Category(name);
ptr->push_back(c);
}
通过这样做,我相信,我会摆脱析构函数的问题,但还有另一个问题。我的 IDE 在和->
之间的符号处抛出一个错误,说“没有重载函数的实例”。ptr
push_back
我应该怎么做,也许你有什么建议?