在c ++中实现共享指针时如何处理常量对象?

时间:2015-04-27 13:51:42

标签: c++ c++03

由于项目限制,我无法使用boost或更现代的C ++。我已经实现了一个适用于我的项目需求的共享指针,但我正在努力处理常量对象。

我需要能够做类似的事情 -

SharedPtr<MyData> sp(new MyData()); SharedPtr<const MyData> const_sp(sp);

1 个答案:

答案 0 :(得分:0)

您可以创建一个模板化的复制构造函数,它允许您使用兼容的模板参数从SharedPtr实例复制构造:

template <typename T>
class SharedPtr {
    template <typename U>
    SharedPtr (const SharedPtr<U> &rhs);
}