避免裸指针:尽量避免将智能指针转换为裸指针传递给函数。如果函数接受裸指针,优先考虑修改函数接口以接受智能指针。 返回智能指针:当函数返回一个动态分配的对象时,可以使用std::unique_ptr或std::shared_ptr,具体取决于对象是否需要共享所有权。 nullptr 检查:在使用智能指针之前,确保智能指针不为空。可以使用if (ptr...
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...
在这个例子中,getFunctionPointer函数返回了一个指向add函数的指针。然后,在main函数中,我们通过这个返回的指针调用了add函数。 所以,函数指针完全可以作为函数的返回值。希望这能帮助你理解这一点。如果你还有其他关于C++的问题,欢迎继续提问。
智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时 的⼀些注意事项 智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时的⼀些注意事项 当智能指针作为函数的参数或者返回值时,⼀直在纠结到底是⽤智能指针对象本⾝还是⽤原始指针。Herb Sutter⼤师的⽂章很好的解决了这个疑惑,参见⽹址...