避免裸指针:尽量避免将智能指针转换为裸指针传递给函数。如果函数接受裸指针,优先考虑修改函数接口以接受智能指针。 返回智能指针:当函数返回一个动态分配的对象时,可以使用std::unique_ptr或std::shared_ptr,具体取决于对象是否需要共享所有权。 nullptr 检查:在使用智能指针之前,确保智能指针不为空。可以使用if (ptr)或if
1、 不要传递shared_ptr本身,而是用原始指针。因为会有性能损失,原子操作的自增自减等。 使用f(widget *w) 不使用f(shared_ptr< widget > w) 函数的返回值也是同样的道理。 2当表示所有权的转移时,用unique_ptr作为函数参数。 Guideline: Don’t pass a smart pointer as a function parameter unless you...
智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时 的⼀些注意事项 智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时的⼀些注意事项 当智能指针作为函数的参数或者返回值时,⼀直在纠结到底是⽤智能指针对象本⾝还是⽤原始指针。Herb Sutter⼤师的⽂章很好的解决了这个疑惑,参见⽹址...
智能指针share_ptr记录 2019-12-23 10:39 − shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象。shared_ptr 对象除了包括一个对象的指针,还包括一个引用计数器。当每给对象分配一个share_ptr的时候,引用计数加一;每reset一个share_ptr, 或者修改对象的指向(指向其他对象或者赋值nullptr).....