1
我想創建shared_from_this函數與此共享ptr。shared_from_this派生類
#include <iostream>
#include <memory>
class foo {
public:
virtual void method() {
std::cerr << "foo::method()" << std::endl;
}
};
class foo_derived : public foo, public std::enable_shared_from_this<foo> {
public:
void method() override {
auto self(shared_from_this());
std::cerr << "foo_derived::method" << std::endl;
}
};
int main() {
foo_derived().method();
}
此代碼扔bad_weak_ptr從線auto self(shared_from_this());
我認爲這個問題是與自己在派生類中創建的事實。 我正在尋找這種行爲的解釋,也將讚賞派生類的有效shared_from_this使用的一個例子。