在我的项目中,我混合了智能指针和原始指针。有些功能需要同时适用于原始功能和智能功能,在这些功能中我只使用了 ->
、=
和 *
指针。我的问题是,如果我有多个参数,我是否必须将每个函数编写两次或什至更多次,或者如果有什么我可以做的,那么我可以同时传递智能指针和原始指针。我在考虑一个包装类来包裹指针或类似的东西。
最佳答案
(这个问题会从代码示例中获益良多,但我会尝试回答。)
我推荐的是通过 reference 或 const reference 传递,然后在传递时对任何一种指针使用 *
运算符函数的参数。
由于您的函数应该使用 raw 或 smart,而且您并不清楚这是不可能的 :D,这对我来说意味着实现不需要对所有权做任何事情。比如,出于某种原因复制一份 shared_ptr
。这意味着,最好将它们编写为引用,因为它们不关心所有权。
关于c++ - 原始指针和智能指针混合函数重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104849/