Hi Folks,
   I have a small query related to singleton class. Upto my knowledge , if we 
try to delete the static object of singleton class , stack overflow happens. 
But if we do the same from main() , stack overflow wont happen. I will keep an 
example to make it simple.

#include "sngle.h"

MySngleTon* MySngleTon::MyCreateInstance()
{
    if(!obj)
    {
        obj = new MySngleTon();
    }
    return obj;
};
MySngleTon::MySngleTon()
{

};
MySngleTon::MySngleTon(const MySngleTon &obj)
{

};
MySngleTon::~MySngleTon()
{
    //cout<<"I am in desc"<<endl;
    delete obj; // stack overflow occurs 
}

/*void MySngleTon::operator delete(void *p)
{
    delete p;
}
int MySngleTon::DestroyInstance()
{
    if(refCount >1 )
        refCount--;
    else
    {


    }
}*/

int main()
{

    MySngleTon *x=MySngleTon::MyCreateInstance();
    MySngleTon *y=MySngleTon::MyCreateInstance();
    delete x; (here even x internally contain one more static object and 
recrussion occurs . so I expect stack overflow even at here. But its not 
happening as expected. 
}

      GopiKrishna Komanduri
Software engineer
[email protected]
   




      Now, send attachments up to 25MB with Yahoo! India Mail. Learn how. 
http://in.overview.mail.yahoo.com/photos

[Non-text portions of this message have been removed]

Reply via email to