std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
std::shared_ptr<Object> p2(new Object("foo"));
Run Code Online (Sandbox Code Playgroud)
许多google和stackoverflow帖子就在这里,但我无法理解为什么make_shared
比直接使用更有效shared_ptr
.
有人可以一步一步解释我创建的对象序列和两者所做的操作,这样我就能理解make_shared
效率如何.我在上面给出了一个例子供参考.
与Regular cast vs. static_cast vs. dynamic_cast相关的问题:
你更喜欢C++中的演员语法风格?
(int)foo
static_cast<int>(foo)
int(foo)
它们可能无法转换为完全相同的指令(是吗?)但它们的效果应该相同(对吗?).
如果你只是在内置数值类型之间进行转换,我发现C++风格的转换语法太冗长了.作为以前的Java编码器,我倾向于使用C风格的转换语法,但我的本地C++专家坚持使用构造函数语法.
你怎么看?