【发布时间】:2015-09-13 16:29:41
【问题描述】:
一个唯一的ptr类应该如何将它的实例指针传递给它的成员对象。 我想出了以下方法,想知道是否有更好的方法。 在以下示例中,对象 f 将其实例 ptr 作为原始指针传递给其成员对象。我想知道这是否可行,或者有更好更安全的方法吗?
class bar;
struct foo
{
std::unique_ptr<bar> bar_ptr;
};
struct bar
{
const foo* raw_foo_ptr;
bar() { }
void setfoo(const foo* p)
{raw_foo_ptr = p;}
};
int main()
{
std::unique_ptr<foo> f(new foo());
f->bar_ptr.reset(new bar());
f->bar_ptr->setfoo(f.get());
}
【问题讨论】:
-
问题到底是什么?是“如何将非拥有指针传递给另一个对象?”。什么对你来说更好?更安全?
标签: c++ c++11 smart-pointers