虹软科技有限公司
杭州市 · 计算机软件 · 500-999人
公司实力雄厚
D轮
A级纳税人
高新技术企业
瞪羚企业
经营产品·1项目信息·4

面试经验

“有难度”
“体验一般”
17 条面经
体验很好面试官笔试电话面试2轮看中专业技能算法优化智力题看重细节深挖项目体验一般
海王星支票夹技术
C/C++
确定通过确定通过
1、平时使用哪个版本的C++?讲一下这个版本C++做了什么改进,引入了什么新特性?答:C++11和C++14。引入了代表RAII思想的智能指针和锁管理包装类(lock_guard、scoped_lock等)。其基本思想就是,自动管理资源的获取和释放,即:在构造对象时,自动获取内存或锁;在析构对象时,自动释放其管理的内存或锁。2、了解C++多态和继承吗?简单讲一下C++多态如何实现。答:继承分为共有、私有和保护。子类对象继承父类之后,根据不同继承关系有可能可以调用父类变量或函数。例如:共有继承下,子类则可以使用父类共有函数。至于多态,一般来说,C++依靠函数重载和虚函数实现。其中,函数重载是静态的,虚函数重写则是动态的。因为依靠虚函数实现的多态,需要根据内存实际指向判断调用哪一个版本的函数。3、了解C++内存管理吗?简单说一下C++的内存管理。答:我刚刚也提到了,C++内存管理主要是依靠智能指针。比如:shared_ptr能够根据引用数量决定是否释放,当引用数量为0时,自动释放其管理的内存。而unique_ptr则是在其析构时,自动释放其管理的内存。追问:讲一下C++中new和malloc的区别答:new返回类型指针,而malloc返回void *指针,需要用户自己将其转换为所需类型。此外,malloc使用时需要计算申请内存大小,而new则是直接使用对象构造函数。4、熟悉C++多线程编程吗?讲一下C++多线程编程中的锁、条件变量和线程的基本使用。答:讲了mutex的包装器用法、condition_variable的wait和notify和thread的初始化。此外,还提到了条件变量的虚假唤醒和一个线程池的基本实现。5、之前使用过模板编程吗?讲一下C++模板编程。答:使用过。除了基本的模板类和模板函数,我还实现过迭代器,并使用了模板萃取技术。主要参考了STL模板库解剖。...查看更多
2023-08-16 发布
加载中
看准网虹软科技有限公司虹软科技有限公司面试经验

找工作