简单样例:
class A{
public ~A() = default;
}
class B: public A{
public:
B(int a,int b):a(a),b(b){}
int a;
int b;
}
auto p1= std::make_unique<B>(1,1);
auto p2=std::make_shared<B>(2,2,);
std::weak_ptr<B> p3(p2);
auto p4=p3.lock();
std::shared_ptr<B> p5(std::move(p1));
//类型转换
std::shared_ptr<A> p6 =p5;
auto p7 = std::static_pointer_cast<B>(p6);
//shared_ptr 成员 智能指针
std::shared_ptr<int> p8(p7,&p7->b);
参数 定义风格: