初始化 shared_ptr 成员变量时:
// .h
class Customer
{
public:
Customer();
private:
std::shared_ptr<OtherClass> something_;
}
// .cpp
Customer():
something_(new OtherClass())
{
}
对比
Customer():
something_(std::make_shared<OtherClass>())
{
}
是否允许使用 make_shared 版本?我似乎总是看到第一个版本,哪个是首选?