Linked list copy constructor
A standard dummy node trick (along with appropriate Node::Node constructors) greatly simplifies the code:

    SimpleVector::SimpleVector(const SimpleVector &amp;obj)
    {
        Node dummy;

        for (Node * o = obj.head, *n = &amp;dummy; o; o = o-&gt;next) {
            n-&gt;next = new Node(o-&gt;value);                
            n = n-&gt;next;
        }

        this-&gt;head = dummy.next;
    }


To utilize STL, you need to implement iterators.