c++20道面试题

摘自传智播客论坛

问1:请用简单的语言告诉我C++ 是什么?
答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!

问2:C和C++的区别?
答:c++在c的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

问3:什么是面向对象(OOP)?
答:面向对象是一种对现实世界理解和抽象的方法、思想,通过将需求要素转化为对象进行问题处理的一种思想。

问4:什么是多态?
答:多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态。

问5:设计模式懂嘛,简单举个例子?
答:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
比如单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
适用于:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时;当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

比如工厂模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

问6:STL库用过吗?常见的STL容器有哪些?算法用过哪几个?
答:STL包括两部分内容:容器和算法。(重要的还有融合这二者的迭代器)
容器,即存放数据的地方。比如array等。
在STL中,容器分为两类:序列式容器和关联式容器。
序列式容器,其中的元素不一定有序,但都可以被排序。如:vector、list、deque、stack、queue、heap、priority_queue、slist;

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++初级工程师面试通常会考察基础理论知识、语言运用能力以及对常见问题的解决方法。以下是一些常见的面试问题: 1. **基础概念**: - C++的核心特性有哪些(如封装、继承和多态)? - 指针和引用的区别是什么? 2. **语法与数据类型**: - 什么是静态变量和局部变量?它们的生命周期是怎样的? - 常量与常量指针有何不同? 3. **内存管理**: - C++中的内存分配方式有哪些?比如栈内存和堆内存? - 什么是构造函数和析构函数? 4. **控制结构**: - 何为条件语句(if-else, switch)、循环语句(for, while)及其使用场景? - 异常处理机制(try-catch)的基本用法是什么? 5. **STL(标准模板库)**: - 描述一下vector、list、set和map的主要区别。 - 队列和栈在哪些情况下使用? 6. **面向对象编程**: - 如何实现单例模式?为什么它不推荐在现代C++中使用? - C++中的纯虚函数和抽象类有什么作用? 7. **模板和泛型编程**: - C++中的模板是什么?模板元编程是什么? - 举例说明如何使用模板进行类型安全的操作? 8. **错误处理和调试**: - 遇到运行时错误(如 segmentation fault)时,你会如何定位问题? - 如何使用gdb或其他调试工具? **相关问题**: 1. 你能解释一下C++中的运算符重载吗? 2. 当你在代码中遇到性能瓶颈,你会如何优化? 3. 什么是RAII(Resource Acquisition Is Initialization)?它在C++中的作用是什么? 如果你有具体的面试题目或者需要深入了解某一方面,随时告诉我,我会帮助你解析和提供答案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值