junlon2006 / cpp-feature

c++11 feature etc.
Apache License 2.0
0 stars 1 forks source link

c++11智能指针 #1

Open junlon2006 opened 4 years ago

junlon2006 commented 4 years ago

std::shared_ptr 可共享的智能指针,三种初始化方式 1、通过构造函数,如std::shared_ptr someClass(new SomeClass); 2、通过make_shared_ptr方法,如std::shared_ptr someClass = std::make_shared_ptr(); 3、值传递:std::shared_prt someClass1 = someClass;

junlon2006 commented 4 years ago

陷阱1:避免循环引用 陷阱2:返回this智能指针,需要类继承std::enable_shared_from_this,然后通过智能指针someClass->shared_from_this()获取 陷阱3:千万不要用同一个指针,初始化二个不同的智能指针 陷阱例子: https://github.com/junlon2006/cpp-feature/blob/master/SmartPointer.cpp