如何删除静态对象

时间:2019-09-12 16:47:45

标签: c++ static nullptr

考虑以下代码

class Foo {
public:
    static Foo *create() {
        /*if (!_pInstance)
            _pInstance = new Foo();*/
        return _pInstance;
    }
    void print() {
        cout << "Hi there "<<this << endl;
    }
private:
    static Foo *_pInstance;
    Foo() = default;
    //~Foo() = default;
};

Foo *Foo::_pInstance = nullptr;
int main()
{
    Foo *obj1 = Foo::create();
    obj1->print();
    delete obj1;
    obj1->print();

    system("PAUSE");
    return 0;
}

我正在研究单例设计模式,但是我面对静态对象的陌生世界。

此代码输出为:

Hi there 00000000
Hi there 00000000

为什么?如何删除该对象?我想要一种导致该程序崩溃的解决方案。

0 个答案:

没有答案