Cant cope with an error (destructor destroys everything)
<p>I face this problem:</p>

<pre><code>No source available.
Call stack location: lab5.exe! Counter:: 'scalar deleting destructor'() + 0x2b bytes.
</code></pre>

<p>I construct a single linked list. </p>

<p><strong>counter.h</strong></p>

<pre><code>class Counter{
    private:
        char* m_pStr; 
        unsigned int m_nOwners; 
        Counter* pNext;         
        static unsigned int m_curCounters;
        static Counter* Head;   
...
</code></pre>

<p><strong>counter.cpp</strong></p>

<pre><code>Counter* Counter:: Head = new Counter();
unsigned int Counter:: m_curCounters = 0;

Counter:: ~Counter(){
    if  (this == Head){
        Head = Head-&gt;pNext;
    }
    else{
        Counter* current = Head-&gt;pNext;
        for (int i = 0; i &lt; m_curCounters; i++){
            if (current-&gt;pNext == this){
                            // Searching for counter, with next one equal this.
                current-&gt;pNext = this-&gt;pNext;
                break;
            }
            current = current -&gt;pNext;
        }
    }
    m_curCounters--;
    delete[] this-&gt;m_pStr;
}
</code></pre>

<p>The closing brace leads to the error. In the pictures: one step separates me from the error screen and the error itself.</p>

<p><img src="http://i.stack.imgur.com/uVDwn.jpg" alt="Screenshot 1">
<img src="http://i.stack.imgur.com/h1iIU.jpg" alt="Screenshot 2">
<img src="http://i.stack.imgur.com/ccOBd.jpg" alt="Screenshot 3"></p>

<p>P.S. Vectors are forbidden.</p>
