取消引用共享指针并分配给它
Dereferencing a shared pointer and assigning to it
像这样取消引用共享指针、分配和分配新对象是否可以:
void foo()
{
std::shared_ptr<std::string> x =
std::make_shared<std::string>();
bar(*x); // is this fine?
// x == bsl::string("WHATEVER")
}
void bar(string& y)
{
y = string("whatever");
}
是的,这是有效的。 Operator *
return 取消引用存储的(原始)指针的结果。
解除对(原始)指针的引用不会生成副本或return临时指针:dereferencing a pointer when passing by reference
像这样取消引用共享指针、分配和分配新对象是否可以:
void foo()
{
std::shared_ptr<std::string> x =
std::make_shared<std::string>();
bar(*x); // is this fine?
// x == bsl::string("WHATEVER")
}
void bar(string& y)
{
y = string("whatever");
}
是的,这是有效的。 Operator *
return 取消引用存储的(原始)指针的结果。
解除对(原始)指针的引用不会生成副本或return临时指针:dereferencing a pointer when passing by reference