1、什么是虚函数?什么是纯虚函数?
虚函数是允许被 其子类重新定义的成员函数。
虚函数的声明: virtual returntype func(parameter);引入虚函数的目的是为了动态绑定;
纯虚函数声明: virtual returntype func(parameter) = 0; 引入纯虚函数是为了派生接口。(使派生类仅仅只是继承函数接口)
2、基类为什么需要析构函数?
防止内存泄漏,想去借助父类指针去销毁子类对象的时候,不能去销毁子类对象。假如没有虚析构函数,释放一个由基类指针指向的派生类对象时,不会触发动态绑定,则只是会调用基类的析构函数,不会调用派生类的。派生类中申请的空间则得不到释放导致内存泄漏。
3、当i是一个整数时 i++和++i哪个更快?它们的区别是什么?
几乎一样。i++返回的是i的值,++i返回的是i+1的值,即++i是一个确定的值,是一个可以修改的左值。