c++中用new动态创建对象注意事项

标题:new运算符

new:在堆区动态创建数据,需要程序员手动释放。*

1.int p=new int(10); //在堆区创建一个整型数据,返回的是该数据类型的指针

delete p; //内存被释放后,再访问就是非法操作

2.int n=0;

cout<<"请输入n的值"<<endl;

int arr=new int[n];//开辟一个数组,返回的是该数组的首地址

delete[] arr;//释放整个数组

new运算符在class类中的应用**
class wood{
private:
int num;
public:

    wood(){cout<<"wood的无参构造函数"<<endl;}
    wood(int NUM):num(NUM){cout<<"wood的有参构造函数"<<endl;}
    ~wood(){cout<<"wood的析构函数"<<endl;}
    void name(){cout<<"木头"<<endl;}

}
int main()
{

  wood *WOOD=new wood;   //动态创建一个wood类型无参构造函数,返回的是指向wood类型的指针
  wood *W=new wood(5);   //动态创建一个wood类型有参构造函数,返回的是指向wood类型的指针
  delete WOOD; //释放内存
  **1.wood*Wood=new wood[3];**   //动态创建wood类型的数组,返回的是指向woodl类型数组的首地址
  delete[] Wood; //动态创建的数组删除
  **2.wood*WW[3]; //指向wood类型的数组**
  for(int i=0;i<3;i++)
  {
  WW[i]=new wood;

}
for(int i=0;i<3;i++)
{
delete Wood[i]; //释放每个wood对象
}
}

区别:1是动态创建的数组,2是静态创建的数组,释放方式有区别

上一篇:[975]python requests实现HTTPS客户端的证书导入


下一篇:【Python】Python 实现破零(ZF)和最小均方误差(MMSE)信道均衡