栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

269-面经2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

269-面经2

1、C++this指针干什么用的?
  • 1个类型定义的对象都有各自的成员变量,但是是共享一套成员方法,在成员方法里,具体访问谁的成员变量,这个是靠this指针区分的。
  • 1个类型定义了很多对象,都是私有的成员变量,但是共享一套成员方法,在成员方法里面访问谁的成员变量?通过this指针区分。
  • C++的类的普通成员方法在被编译的时候都会多出来一个this指针。
2、C++的new和delete,什么时候用new[]申请,可以用delete释放?
  • new和delete本质上是一个运算符重载。operator new,operator delete
  • 当我们用new[]来开辟一个数组内存的时候,相应的在释放这个内存的时候得使用delete[]ptr;
  • delete相当于free有两件事情要做:第一个是调用析构函数,第二个是释放内存。
  • 如果是自定义类型而且提供了析构函数,那么用new[]开辟,就一定需要用delete[]ptr释放。
  • delete[]知道是要释放一个数组内存,就要把数组的每个对象进行析构,然后调用析构函数的时候要传入每个对象的起始地址,就要知道这个内存上有多少个对象,需要把ptr指针-4,才能取到这块内存存储了多少个对象的值。
  • 比如说,new Test[10]; 实际上除了开辟10个Test对象的内存,还需要额外开辟4字节的内存,记录开辟对象的个数。new底层调用malloc开辟内存。
  • 其他的情况,都可以用delete释放。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号