이 질문은 여기이 질문의 후속 질문 enable_shared_from_this : original question자체는
나는 std::enable_shared_from_this
에서 상속 클래스가이 클래스는 std::shared_ptr<Self>
이 클래스의 생성자 중 클래스의 세부 정보가 완전하고 성공적이라는 것을 알고 난 후에 std::shared_ptr<Self>
이 shared this
에 할당되도록 지정하려면 어떻게해야합니까?
예 :
class Self : public std::enable_shared_from_this<Self> {
private:
std::shared_ptr<Self> me_; // Or
std::unique_ptr>Self> me_;
public:
Self (/*some parameters*/);
};
Self::Self(/* some parameters */) {
// Check parameters for creation
// Some work or initialization being done
// If all is successful and construction of this class is about
// to leave scope, then set the smart pointer to the this*
// How to do ...
me_ = std::enable_shared_from_this<Self>::shared_from_this();
// Properly if this is even possible at all.
}
@ Jason R 오 그럼. 그래서 나는 그것들의 인스턴스를 포함하는 "manager type class"를 갖도록 요구할 것이다. 또는 나는 구조체 또는 생성 함수와 같은 생성자 바로 다음에 호출되도록 함수에 설정해야 할 것이다. –
자기에 대한 shared_ptr은 모순입니다. 일시적으로 객체를 유지하는 데 유용합니다 (예 : 콜백을 기다리는 중). –