各种笔试面试经历小总结(1)
来源:互联网 发布:怎么找到淘宝卖家电话 编辑:程序博客网 时间:2024/05/22 14:21
今天参加了一家IT公司的笔试,涉及到几个C++的问题,之前并没有搞太清楚,小总结一下。
问题一:关于c++的虚函数,引入虚函数的意义。
我们知道,多态性是面向对象程序设计的重要特征,一般定义是:向不同对象发送同一消息,不同对象在接收到该消息时会有不同的处理方法。那么实现多态性有两种方式,一种是静态多态性,另一种是动态多态性。
静态多态性是通过函数和运算符的重载来实现的,从编译器的角度看,它在程序编译时就知道调用函数的全部信息,在编译时系统就知道要调用哪个函数了,这种方式的速度快、效率高,但是缺乏一定灵活性。
动态多态性 就是通过虚函数来实现,从编译器的角度来看,在编译时并不知道调用哪个函数,而是在程序运行过程中才动态地确定操作所针对的对象。利用虚函数,可以设计出易于功能拓展的系统。虚函数要使用virtual进行修饰,它一般在基类进行函数声明,在派生类中进行具体函数定义。
问题二:关于析构函数
我们都知道析构函数一般在结束某个对象(假设为局部对象)的调用前调用它来释放资源,但是要注意几点:1、静态局部对象在函数调用结束时对象并不释放,因此不调用析构函数,只在main函数结束或调用exit函数结束程序时系统才调用静态局部对象的析构函数释放资源;2、如果定义的是一个全局对象,直到main函数结束和调用了exit函数时才调用其析构函数;3、当用new给对象分配资源,使用delete删除对象时,先要调用析构函数;4、构造函数可以重载,而析构函数不能重载,只能将其声明为虚函数来实现多态性,当派生类对象从内存中撤销时一般先调用派生类的析构函数,再调用基类的析构函数,但用new简历的临时对象并定义了一个指向该基类的指针变量,在使用delete撤销对象时,不执行派生类中的析构函数,而是只执行基类的析构函数,当将基类的析构函数声明为虚函数后,就可以执行派生类的析构函数了。
问题三:关于对象复制问题
由于对象结构较为复杂,所以直接使用一般的赋值语句是无法实现复制的,可以有两种方法,一种是重载“=”操作符,使其具有直接复制对象功能,另一种是使用拷贝构造函数,拷贝构造函数声明方式:Box::Box(const Box&x){初始化语句}
问题四:使用ifstream流类定义一个对象打开文件时默认的打开方式
Ifstream myfile;
Myfile.open(“filename”);
Open函数由两个参数组成,第一个参数是指定的文件路径名,第二个参数是打开模式,系统默认按ios::in方式打开,即为隐含打开方式。
这次笔试还考了20几道数学逻辑题,主要是些小学初中奥赛的题,不过在短时间不一定能做对哦,还得好好练练数学逻辑和推理!
- 各种笔试面试经历小总结(1)
- 笔试面试经历总结
- 百度实习生笔试面试经历总结
- 笔试面试总结(1)
- 2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)
- 腾讯笔试面试经历(2010年)
- 腾讯(唯品会)笔试面试经历
- 面试经历(1)
- 美团的笔试经历(为啥是笔试经历不是面试经历的,笔试没通过……)
- java面试小经历
- 前端笔试,前端面试——各种小姿势(持续更新,欢迎补充!)
- 2011腾讯笔试面试经历
- 2013--腾讯笔试面试经历
- 宇视笔试面试经历
- 2017华为笔试、面试经历
- 我的各种面试经历
- 我的各种面试经历
- 笔试面试总结(一)
- uboot参数解析和NFS服务器的配置
- cygwin 编译ffmpeg 之android.mk
- 应用程序之间互相通讯的几种方法
- 转Class.forName详解
- ACE
- 各种笔试面试经历小总结(1)
- 浙大考研实验室面试---电话面试
- Tabhost
- Java正则表达式小测试
- 转JNDI 是什么
- AIX培训之---北京创新乐知信息技术有限公司
- cannot find protocol declaration for "xxDelegate" 的错误
- Android 非UI线程使用View.post()方法一处潜在的内存泄漏
- 行情交易系统设计