前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++中用new动态创建对象注意事项

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

作者头像
大忽悠爱学习
发布2021-02-22 11:23:22
6770
发布2021-02-22 11:23:22
举报
文章被收录于专栏:c++与qt学习

标题:new运算符

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

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

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

2.int n=0;

代码语言:javascript
复制
cout<<"请输入n的值"<<endl;

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

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

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

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

} int main() {

代码语言:javascript
复制
  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是静态创建的数组,释放方式有区别

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 标题:new运算符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档