DeveloperBreeze

C++ Classes Development Tutorials, Guides & Insights

Unlock 1+ expert-curated c++ classes tutorials, real-world code snippets, and modern dev strategies. From fundamentals to advanced topics, boost your c++ classes skills on DeveloperBreeze.

Avoiding Memory Leaks in C++ Without Smart Pointers

Tutorial April 11, 2025

Let’s build a small ScopedPointer class.

template <typename T>
class ScopedPointer {
private:
    T* ptr;

public:
    explicit ScopedPointer(T* p = nullptr) : ptr(p) {}

    ~ScopedPointer() {
        delete ptr;
    }

    T& operator*() const { return *ptr; }
    T* operator->() const { return ptr; }
    T* get() const { return ptr; }

    void reset(T* p = nullptr) {
        if (ptr != p) {
            delete ptr;
            ptr = p;
        }
    }

    // Prevent copy
    ScopedPointer(const ScopedPointer&) = delete;
    ScopedPointer& operator=(const ScopedPointer&) = delete;
};