C++內存泄漏問題務必要避免!

在做C++開發過程中,忽略了很重要的問題:自己申請的內存沒有主動去釋放。
這樣造成大量內存的泄漏,問題比較嚴重。
如通過new 來申請的內存空間,必須手動去做delete 釋放操作。
規則如下:
1、成員變量爲指針對象,且在主函數中,爲成員變量賦值後,不再做其他操作。可以在析構函數中做刪除操作。
實例如下:CTest.cpp
CTest::CTest():m_t(new CTestA())//初始化列表實現
{
   }

CTett::~CTest()
{
  if(m_t != NULL)
  {
    delete m_t;
    m_t = NULL:
   }
}

CTest::Show()
{
  m_t->Operation();
}
//CTestA實現的關鍵代碼
CTestA::Operation()
{
  cout<<"CTestA Operation.."<<endl;
   }
//客戶端main.cpp
int main()
{
  CTest *t = new CTest();
  t->Show();
 
  //釋放內存
  if(t != NULL )
  {
    delete t;
  }
  return 0;
}

2、另外一種情況是隻能定義後手動由用戶進行刪除的,如上例中對於在客戶端new 的對象t,必須用戶手動在外面做刪除操作。

注:之前在寫設計模式的實例時,完全忽視了內存泄漏的問題,已經修改。
僅以此文提醒自己在以後的編程過程中,切記要時刻提醒自己,申請內存後必須在用完後的第一時間做釋放操作。
也給初學C++的朋友們參考,儘量還要犯這類錯誤。
以上,僅供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章