- 3
- 0
- 约1.08万字
- 约 17页
- 2020-10-22 发布于广东
- 举报
1.new、delete、malloc、free 关系
delete 会调用对象的析构函数,和new 对应free 只会释放内存,new 调
用构造函数。malloc 与free 是C++/C 语言的标准库函数,new/delete 是
C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数
据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象在
创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函
数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,
不能够把执行构造函数和析构函数的任务强加于malloc/free 。因此C++
语言需要一个能完成动态内存分配和初始化工作的运算符new ,以及一
个能完成清理与释放内存工作的运算符delete 。注意new/delete 不是库
函数。
2.delete 与 delete []区别
delete 只会调用一次析构函数,而delete[]会调用每一个成员的析构函
数。在More Effective C++ 中有更为详细的解释:“当delete 操作符用于
数组时,它为每个数组元素调用析构函数,然后调用operator delete 来
释放内存。”delete 与new 配套,delete []与new []配套
MemTest *mTest1=new MemTest[10];
MemTest *mTest2=new MemTest;
Int *pInt1=new int [10];
Int *pInt2=new int;
delete[]pInt1; //-1-
delete[]pInt2; //-2-
delete[]mTest1;//-3-
delete[]mTest2;//-4-
在-4-处报错。
1
这就说明:对于内建简单数据类型,delete 和delete[]功能是相同的。对
于自定义的复杂数据类型,delete 和delete[]不能互用。delete[]删除一个
数组,delete 删除一个指针。简单来说,用new 分配的内存用delete 删
除;用new[]分配的内存用delete[]删除。delete[]会调用数组元素的析构
函数。内部数据类型没有析构函数,所以问题不大。如果你在用delete
时没用括号,delete 就会认为指向的是单个对象,否则,它就会认为指
向的是一个数组。
3.C++有哪些性质(面向对象特点)
封装,继承和多态。
4.子类析构时要调用父类的析构函数
吗?
析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类
的的析构调用的时候,派生类的信息已经全部销毁了。定义一个对象时先
调用基类的构造函数、然后调用派生类的构造函数;析构的时候恰好相
反:先调用派生类的析构函数、然后调用基类的析构函数。
5.多态,虚函数,纯虚函数
多态:是对于不同对象接收相同消息时产生不同的动作。C++的多态性
具体体现在运行和编译两个方面:在程序运行时的多态性通过继承和虚
函数来体现;
在程序编译时多态性体现在函数和运算符的重载上;
虚函数:在基类中冠以关键字virtual 的成员函数。 它提供了一种接口
界面。允许在派生类中对基类的虚函数重新定义。
2
纯虚函数的作用:在基类中为其派生类保留一个函数的名字,以便派生
类根据需要对它进行定义。作为接口而存在纯虚函数不具备函数的功
能,一般不能直接被调用。
从基类继承来的纯虚函数,在派生类中仍是虚函数。如果一个类中至少
有一个纯虚函数,那么这个类被称为抽象类(abstract class )。
抽象类中不仅包括纯虚函数,也可包括虚函数。抽象类必须用作派生其
他类的基类,而不能用于直接创建对象实例。但仍可使用指向抽象类的
指针支持运行时多态性。
6.求下面函数的返回值(微软)
int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x(x-1);
}
return countx;
}
假定x = 9999 。 答案:8
思路:将x 转化为2 进制,看含有的1 的个数。
7.什么是“引用”?申明和使用“引用”要
注意哪些问题?
答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直
接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变
您可能关注的文档
最近下载
- 公共卫生考试题及答案.docx VIP
- 热点 01 人工智能【讲练结合】(解析版)-2026年中考英语新课标(核心素养)书面表达专题讲练(全国通用).docx VIP
- 《石油的形成过程》课件.ppt VIP
- 浙教版初中七年级下册劳技术 项目一 任务一 学做小笼包【课件】.pptx VIP
- 2026春小学科学苏教版(2024)二年级下册教学设计(含目录).docx
- 职业健康安全(ISO45001-2018)体系推行计划.xls VIP
- 统编版一年级下册道德与法治第一单元《我有新面貌》全单元教学课件(新教材).pptx
- 第25课 中华人民共和国的成立和社会主义制度的建立.pptx VIP
- 与圆有关的解答题(10大考点44题)(原卷版)--2025年中考数学真题分类汇编(全国通用).pdf VIP
- 江西省民办职业培训学校设立标准、申办报告、申请审批表、评分细则、办学评估细则、承诺书、办学许可证及填写规范.docx VIP
原创力文档

文档评论(0)