首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++ builder的内存储器释放: [ 自己添加public成员, 构造函数中new ]

2013-10-24 
C++ builder的内存释放: [ 自己添加public成员, 构造函数中new ][解决办法]关于 delete 与 delete []如果

C++ builder的内存释放: [ 自己添加public成员, 构造函数中new ]

[解决办法]
关于 delete 与 delete []
如果不匹配,可能 codeguard 会错报的。如果不用 codeguard 之类的来做内存监测,那个对于 析放单个实例来说,一般应该没区别。不过,还是建议严格匹配,因为严格匹配总是正确的,我可不想我的代码引发其他异常。

[解决办法]
(1) 不需要...以動態建立窗口為例 :

TForm1 *Form1; // 主窗口
TForm2 *TestFormA; // 運行生命期與主窗口相依

// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
// 以 VCL 機制...當主窗口 Destroy 時...TestFormA 連帶被釋放
TestFormA = new TForm2(this);
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)


{
TestFormA->ShowModal();
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// 即用即收
TForm *TestFormB = new TForm2(this);
TestFormB->ShowModal();
delete TestFormB; // 此處一定要加 delete 來釋放 TestFormB
}

热点排行