C++之对象的new与delete
来源:互联网 发布:破解福利软件分享 编辑:程序博客网 时间:2024/05/18 18:54
这里单独说一点对于类对象的new和delete中到底开辟的是哪段空间,释放的是哪段空间。
还是一样举个例子:
class A{private: char* str;public: A(){ str = new char[100]; } ~A(){ delete []str; }};int main(){ A a = new A; delete a;}
构造器和析构器就不用说了,显然构造器中的new是为str开辟了一段100字节空间,析构器中delete释放的也是为str的那100字节大小的空间。那么main函数中new呢?
其实也很容易看出来,是为对象a创建的空间,一般情形下,使用
A a;
这种情况下是看不到编译器给对象a分配空间的,通过:
A a = new A;
就能显示的看到为a分配空间,但这个过程单纯就是为对象开辟空间,并不去为a.str开辟空间,但为什么a.str的空间确确实实被开辟了呢,因为new A这个过程引发了构造器,再由构造器为a.str开辟空间。
delete是一个道理,显然delete a; 释放了为对象开辟的空间,但在释放对象的空间之前引发了析构器,由析构器先释放a.str的空间,最后再释放对象a的空间。
0 0
- C++之对象的new与delete
- 堆对象的new与delete
- C ++的new、delete
- new与delete创建对象
- C/C++ New与Delete
- C++之new与delete
- c++operator new/new operator、operator delete/delete operator的区别与联系
- C++【堆内存的动态分配与释放(new/delete)】
- 【C++】new delete & new[] delete[]
- new与delete的作用
- new与delete的使用
- new与delete的重载
- C++之new、delete 与malloc、free的异同
- C++之new、delete 与malloc、free的异同
- C++之new、delete 与malloc、free的异同
- C++之new、delete 与malloc、free的异同
- new&delete 与 new[]&delete[]
- c++-new与delete运算符
- netty3入门案例
- 第14周-阅读程序(2)
- 谭浩强教授版《C程序设计》(第二版)P105 5.8企业发放的奖金根据利润提成(if)
- 设计模式—简单工厂模式
- 投票操作管理系统
- C++之对象的new与delete
- hdu1285 确定比赛名次(拓扑排序)
- hdu3068——最长回文
- 优秀网址
- SVM入门(七)为何需要核函数
- OpenCV2之Mat简介
- web前端与java后台开发哪个前景、待遇好?
- 得到二叉树中从根节点到树中某一节点的路径
- Middle-题目124:91. Decode Ways