编程语言
首页 > 编程语言> > c++中用new动态创建对象注意事项

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是静态创建的数组,释放方式有区别

标签:int,创建对象,动态创建,wood,c++,数组,new,delete
来源: https://blog.csdn.net/m0_53157173/article/details/113379700