【发布时间】:2014-07-01 13:44:12
【问题描述】:
所以push_back 仅将对象的副本添加到我的类std::vector<Action*> 的向量中。我对要推入向量的对象有一个clone 方法:stack.push_back(pattern->actions[a]->clone()); 其中克隆返回具有所有相同属性的新对象。这是没有意义的吗? push_back 是否已经做了我想让它做的事情?
【问题讨论】:
-
您的
vector实例是如何声明的?std::vector<foo>或std::vector<foo *>,还是...? -
@Brian,更新问题
-
你的向量不包含对象,只是指针。所以它不能保存对象的副本。
-
也许使用像copy_ptr我的google-fu这样的智能指针?
-
@Deduplicator 而不是
std::unique_ptr或std::shared_ptr而不是自制实现