1.new、delete、malloc、free的关系
malloc/free是C++/C语言的标准库函数,而new/delete是C++的运算符。
它们都可用于申请动态内存和释放内存。
但是,malloc/free是库函数,不能实现执行构造函数和析构函数,而运算符new/delete可以。
2.c++有哪些性质
封装、继承和多态。
3.对于派生类和基类的构造和析构函数的调用顺序
构造:先基类后派生类
析构:先派生类后基类
4.多态、虚函数、纯虚函数、抽象类、虚继承
c++在运行时的多态是通过虚函数实现的。
虚函数:在基类中冠以virtual关键字的函数,允许在派生类中对它重新定义。
纯虚函数:在基类中没有对虚函数给出有意义的实现,把它声明为纯虚函数,它的实现留给派生类去做。
抽象类:有纯虚函数的类。抽象类是不能实例化对象的。
虚继承:解决二义性的问题
!!每一个有虚函数的类都要有一个4字节的指针指向自己的虚函数表,对于虚拟继承,会增加一个偏移指针!!
5.求下面函数的返回值(微软)
int func(x)
{
int countx = 0;
while(x) {
cou