关于下面C++11的std::shared_ptr说法正确的有?
struct Test{};
std::shared_ptr<test> p1 = std::make_shared<test>();//1</test></test>
std::shared_ptr<test> p2 (new Test);//2</test>
A.
上面的代码1语句只会进行1次内存申请,2语句则会2次内存申请
C.
构造函数是保护或私有时,无法直接使用 make_shared
D.
使用 make_shared,对象的内存可能无法及时回收
E.
如果可以,最好把一个原生指针给多个shared_ptr管理,节省内存分配的资源