请在创建实例时说明内存分配
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++。)