
Hi all, I have a class called TextTool. In its constructor I initialize a member variable. This member variable needs a pointer to TextTool in *its*constructor. Hence I need to have a pointer to "this" (TextTool) and then pass it to the constructor of the member variable. This is a summery of my code: *TextTool.h* class TextTool : public Tool, public boost::enable_shared_from_this<TextTool> { public: TextTool(QDialog *taskDialogue); private: boost::shared_ptr<ToggleControl> bold; //Member variable that needs a pointer to TextTool in its constructor }; *TextTool.cpp* TextTool::TextTool(QDialog *taskDialogue) : Tool(this->name) { boost::shared_ptr<TextTool> pointerToThis = TextTool::shared_from_this(); //ERROR OCCURS ON THIS LINE bold = boost::shared_ptr<ToggleControl>(new ToggleControl(pointerToThis)); } I get a runtime exception: "boost::bad_weak_ptr at memory location 0x0012fccc" when executing the above mentioned line. On the BOOST online documentation, I dont understand what this line means: "**this* must be a subobject of an instance *t* of type *T* . There must exist at least one *shared_ptr* instance *p* that *owns* *t*.". Do I need to have an instance (t) of TextTool (T) as a member variable of the class TextTool? Won't this lead to loops in my situation (since I want the "this" pointer to be created in the constructor itself)? Any help? Thanks, /C.