c++笔试面试遇到的问题总结

本文深入探讨了C与C++之间的核心区别,着重介绍了标准模板库(STL)的使用,解释了智能指针的工作原理,并涉及了设计模式的基本概念。内容涵盖了C++的独特优势、STL的常用组件、智能指针的特性及其在实际编程中的应用,以及设计模式在软件开发中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.c和c++有啥不同?

我引用一下《Effective c++》的介绍:

“C 是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。 不管什么问题,C 都靠宏、指针、结构、数组和函数来解决。而 C++不是这样。 宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数 重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、 模板、异常、名字空间,等等。用 C++比用 C 具有更宽广的空间,因为设计时 有更多的选择可以考虑。”

 

2.谈谈你对stl的了解

c++初、中级面试,真的很喜欢问stl,基本上是必问的,工作中用的也会相对比较多。之前用vector和map比较多,就只能说一点,后来我直接翻了《STL源码解析》,想知道的都在上面,比较详细。源码面前,了无秘密。

 

3.智能指针的了解

之前电话面试的时候,有被问到过智能指针。因为工作中好像没碰到过,所以也就实话实说没怎么接触过。后来重翻《c++ primer》第六版的时候,发现第16章第二节专门有介绍。之后看《STL源码解析》的时候,发现vector、map这些个stl的迭代器就是智能指针。所以只要用过stl的迭代器,就算接触过智能指针了。

 

4.虚函数和虚函数表

这个其实就是考验面试者对c++多态的本质了解吧。

 

5.设计模式

面试的时候,有时候会被问到接触过哪些设计模式。

“设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。”

 

其他的以后想到或者碰到再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值