【发布时间】:2017-03-31 08:23:29
【问题描述】:
我正在尝试实现一个可以将指向自身的智能指针推入向量的类:
#include <memory>
#include <vector>
class A {
public:
void pushme(std::vector<std::shared_ptr<A>> & vec) {
vec.push_back(std::shared_ptr<A>(this));
}
};
int main() {
A test;
std::vector<std::shared_ptr<A>> vec;
test.pushme(vec);
return 0;
}
这编译得很好,但在执行时我得到一个free(): invalid pointer 错误。请帮助我了解这里发生了什么。
【问题讨论】:
标签: c++ c++11 vector smart-pointers