请在创建实例时说明内存分配

class simpleTestFactory
{
    public:
    static simpleTest* Create()
    {
        return new simpleTest();
    }
}

class simpleTest
{
    private:
    int x,y,z;
    public:
    int printTest()
    {
        cout<<"\n This test program";
    }
}

int main()
{

    simpleTest* s1=simpleTestFactory::Create();
    .
    .
    s1=simpleTestFactory::Create();
}

在主函数中,我们使用create static函数为simpleTest创建实例。同样,我们为同一对象创建另一个实例。

在这种情况下,第一个创建的实例内存将被删除?

否则如何避免内存问题?

最佳答案



不,不会。您必须自己调用delete或首先使用智能指针来释放它。

(我假设s1的类型为simpleTest*,即simpleTest的指针,否则您的代码不是有效的C++。)

10-07 16:31