为什么这一段代码存在内存泄露?? 百思不得其解
.h
class ConnDatabase
{
public :
ConnDatabase(void);
~ConnDatabase(void);
protected :
TADOQuery *adoquer;
TADOConnection *adoconn;
};
ConnDatabase::ConnDatabase(void)
{
adoconn= new TADOConnection(NULL);
if (adoconn==NULL)
{
ShowMessage( "内存分配失败 ");
return;
}
adoconn-> ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=mkx@#1981;Data Source= "+ExtractFilePath(Application-> ExeName)+ "mkx.mdb; ";
adoconn-> LoginPrompt =false;
adoconn-> Open();
if (adoconn-> Connected==false) // 判断close()方法是否执行成功
{
ShowMessage( "对不起,连接失败 ");
return ;
}
adoquer=new TADOQuery(NULL);
if (adoquer==NULL)
{
ShowMessage( "内存分配失败 ");
return ;
}
adoquer-> Connection =adoconn;
adoquer-> Close();
ShowMessage( "gouzhao ");
}
ConnDatabase::~ConnDatabase(void)
{
adoconn-> Close();
delete adoquer;
delete adoconn;
adoquer=NULL;
adoconn=NULL;
ShowMessage( "xigou ");
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ConnDatabase ConnData;
}
老是报内存泄露 何解??
[解决办法]
http://topic.csdn.net/t/20030706/10/1995635.html