周一至周五都是有课的,所以更新会晚点
面试准备第三天———得知一个不算坏的消息,找到一个大厂的实习,就能够提前出去实习(起码是有机会出去工作不是),希望能尽快拿到我人生中的第一份大厂实习。
1.为什么析构函数必须是虚函数,而C++默认的析构函数不是虚函数?
(1)将可能会被继承的父类的析构函数设置为虚函数,可以保证当我们new一个子类,然后使用基类指针指向该子类对象,释放基类指针时可以释放掉子类的空间,防止内存泄漏。
(2)虚函数需要而外的虚函数表和虚表指针,会占用额外的内存。但是对于不会被继承的类来说,如果它的析构函数是虚函数,就会浪费内存
2.简述C++有几种传值方式,之间的区别是什么?
(1)值传递
形参即使在函数体内值发生变化,也不会影响实参的值;
(2)引用传递
形参在函数体内值发生变化,会影响实参的值;
(3)指针传递
在指针指向没有发生改变的前