کاربرد enable_shared_from_this - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۳۴۷ نفر آنلاین
۱۲۲ عضو و ۲۲۵ مهمان در سایت حاضرند

کاربرد enable_shared_from_this

+1 امتیاز

داخل این کد :

class tcp_session
  : public subscriber,
    public boost::enable_shared_from_this<tcp_session>
{
//..
}

دلیل این که از enable_shared_from_this ارث برده شده چی هست ؟

 

سوال شده دی 4, 1393  بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
ویرایش شده دی 5, 1393 بوسیله ی BlueBlade

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

کلاس enable_shared_from_this یک تابع public داره به اسم shared_from_this که کارش این هست که یک shared pointer به همین کلاس که داخلش هستیم بر می گردونه پس وقتی که از این کلاس ارث  می بریم این تابع هم قابل استفاده میشه .

 

#include <boost/enable_shared_from_this.hpp>
#include <boost/shared_ptr.hpp>

class Test : public boost::enable_shared_from_this<Test>
{
public:

    boost::shared_ptr<Test> get_instance()
    {
        return shared_from_this();//in function az enable_shared_from_this hast
    }
};

int main()
{
      boost::shared_ptr<Test> t(new Test);
      boost::shared_ptr<Test> t2 = t->get_instance();
}



ضمنا این کلاس به c++11 هم اضافه شده:

 http://en.cppreference.com/w/cpp/memory/enable_shared_from_this

پاسخ داده شده دی 5, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد دی 6, 1393 بوسیله ی PSPCoder
...