在 C++ 中实现共享指针时如何处理常量对象?
How do I handle constant object when implementing shared pointer in c++?
由于项目限制,我无法使用 boost 或更现代的 C++。我已经实现了一个适用于我的项目需求的共享指针,但我在处理常量对象时遇到了困难。
我需要能够做类似的事情 -
SharedPtr<MyData> sp(new MyData());
SharedPtr<const MyData> const_sp(sp);
您可以创建一个模板化的复制构造函数,它允许您使用兼容的模板参数从 SharedPtr
个实例进行复制构造:
template <typename T>
class SharedPtr {
template <typename U>
SharedPtr (const SharedPtr<U> &rhs);
}
由于项目限制,我无法使用 boost 或更现代的 C++。我已经实现了一个适用于我的项目需求的共享指针,但我在处理常量对象时遇到了困难。
我需要能够做类似的事情 -
SharedPtr<MyData> sp(new MyData());
SharedPtr<const MyData> const_sp(sp);
您可以创建一个模板化的复制构造函数,它允许您使用兼容的模板参数从 SharedPtr
个实例进行复制构造:
template <typename T>
class SharedPtr {
template <typename U>
SharedPtr (const SharedPtr<U> &rhs);
}