C++內存申請、實例化的方式

  • C++內存管理,我們只能做申請和歸還操作
申請內存
 new
int *p = new int
釋放內存
delete
delete p
申請塊內存用數組,int *arr = new int[10],釋放內存用delete[]arr
  • 內存操作的注意事項:
    C語言用的 malloc 和 free 函數,注意不要和C++混搭,要配套使用
    申請內存可能會失敗,比如內存已經用完,在寫代碼時注意: 
    int *p = new int[1000];//申請1000個整型的內存
              if(Null == p){//內存分配失敗
                     delete p;//或者寫delete[]p
                     p = NULL;
              }

注意內存不可重複回收,會出現異常
  • 類和對象中各種概念
    類:抽象,由數據成員和成員函數構成,對象複製和對象賦值是類的特性
    對象:具體,構造函數和析構函數,用於描述對象的建立和撤銷
    this指針:可將類和對象有機結合
    封裝:把實現的細節封裝起來,只暴露用戶關心的部分
    訪問限定符:public protected private
  • 實例化的方式:堆和棧
    棧中實例化:
      Note:棧中的實例化無需釋放內存
      堆中實例化:
      class TV public: char name[201; int type; void changeVol(); void power(); int main(void) TV *p = new TV(); TV = new TV[201; //todo delete p; delete [ Iq; return O;
      Note:堆中的實例化必須釋放內存!
  • 對象成員的訪問int main(void) tv.type = O; tv. changeVol(); return O; int main(void) TV *p = new TV(); p->type = O; p->changeVol(); delete p; p = NULL; return O;
用"."來實現。注意這是棧實現的方式
用“->”來實現。注意這是堆實現的方式
      int main(void) TV *p = new TV[51; for(int i = O; i < 5; i++) p[il->changeVol(); delete [ Ip; p = NULL; return O; 
  • String的使用示例
    #include <iostream> #include <string> using namespace std; int main() string name =
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章