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