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