我仍然很难理解为什么
void work_with_foo(shared_ptr<foo> _foo);
不推荐相比
void work_with_foo(foo* _foo)
我明白这样work_with_foo(foo& _foo)
更好,但指针作为参数!如果有人打电话delete _foo
怎么办?
有人可以解释我为什么吗?我总是使用shared_ptr
,例如,在我的代码中......
shared_ptr<foo> ptr_foo(new foo);
//calling work_with_foo which takes foo pointer
work_with_foo(ptr_foo); //will this even work?