Junior — Middle+
69
SharedPtr: реализация копирующего конструктора
Task condition
Необходимо добавить в класс умного указателя конструктор копирования, который будет корректно увеличивать счётчик ссылок.
template <class T>
class SharedPtr {
int* refCount = nullptr;
T* rawPtr = nullptr;
public:
SharedPtr() = default;
SharedPtr(const SharedPtr& other) {
rawPtr = other.rawPtr;
refCount = other.refCount;
// увеличиваем счётчик ссылок
}
SharedPtr(T* ptr) {
rawPtr = ptr;
refCount = new int(1);
}
};