c++ - 原始指针和智能指针混合函数重载

标签 c++ pointers c++11 smart-pointers

在我的项目中,我混合了智能指针和原始指针。有些功能需要同时适用于原始功能和智能功能,在这些功能中我只使用了 ->=*指针。我的问题是,如果我有多个参数,我是否必须将每个函数编写两次或什至更多次,或者如果有什么我可以做的,那么我可以同时传递智能指针和原始指针。我在考虑一个包装类来包裹指针或类似的东西。

最佳答案

(这个问题会从代码示例中获益良多,但我会尝试回答。)

我推荐的是通过 referenceconst reference 传递,然后在传递时对任何一种指针使用 * 运算符函数的参数。

由于您的函数应该使用 raw 或 smart,而且您并不清楚这是不可能的 :D,这对我来说意味着实现不需要对所有权做任何事情。比如,出于某种原因复制一份 shared_ptr。这意味着,最好将它们编写为引用,因为它们不关心所有权。

关于c++ - 原始指针和智能指针混合函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104849/

相关文章:

c - C 中获取二维数组的长度

pointers - 在字节可寻址系统中,堆栈指针是否以字或字节递增/递减?

c++11 - C++ 11 中的单例使用成员函数说明符

c++ - SFINAE 独树一帜

c++ - unique_ptr 的内存占用

c++ - Boost Gil 能够光栅化字体吗?

c++ - 在 C++ 中声明常量数组值

c++ - 有没有开源真正的路线图路由实现?

c++ - 从 C++ 中的锁定文件获取创建时间、上次访问时间和上次修改时间

C程序使用指针数组对char数组进行排序