c++面试问题总结

1.c++面试问题总结
(1)空类的大小,仅含有虚函数类的大小
(2)析构函数声明为虚函数的作用
(3)C++多态的实现方式,虚函数的底层实现细节
(4)引用和指针的区别(++)
(5)继承类调用构造函数顺序和析构函数顺序,什么时候要将 析构函数定义为虚函数
()多重继承,基类和父类之间怎么转换
(6)new 与 malloc的异同处 C++为什么要引入new
(7)new背后会发生什么 , new有几种用法
(8)结构体内存对齐方式。
(9)虚函数实现方式 (+) 虚函数作用
C++的虚函数表、虚继承相关
C++的虚函数表了解吗?虚继承虚指针呢?
(10)在类里面给成员赋值,会在什么时候初始化
(11)为什么析构函数不要抛出异常,构造函数中出现异常会怎么样
(12)模板的特化和偏特化
(13)C++11特性
(14)lamda表达式原理,lamda表达式内的变量的生命周期
lamda表达式怎么用的
(15)C++17了解过吗
(16)转移构造函数了解吗,用在什么场景
介绍一下拷贝构造函数
(17)介绍下重载和重写,f(int, float), f(float, int), 调用f(1, 1)用的哪个
(18)介绍下多态,多态是为了解决什么问题
(19).构造函数可以是虚函数吗,析构函数可以是虚函数吗
(20)编译和链接分别做了什么事情,什么情况下链接失败
(21)static_cast dynamic_cast区别
(22)智能指针有哪几种,为了解决什么问题,weak_ptr和shared_ptr用起来什么区别
.智能指针实现
(23)stl用过哪些,sort怎么实现,unordered_map实现
(24)右值引用是什么概念,C++98怎么做到类似的事情
(25)map和unordered_map有什么区别,怎么根据需求选择map还是unordered
(26)stl的allocator做什么的
(27)volatile关键字做什么的,对volatile变量访问是线程安全吗
(28)C和C++的区别
C++能直接运行C语言文件吗?用C语言可以实现C++的继承和多态吗?
类和结构体的区别?C和C++的区别?
(29)i++和++i的区别,效率有区别吗
()siezeof结构体为什么要对齐
()C++如何防止内存泄漏
()STL了解吗?STL的容器底层数据结构是什么?
()vector的内存分配了解吗?a是vector的一个元素,&a传参可以吗?为什么?
()编译的过程
()static相关,static变量存在内存哪里,两个.h文件同时定义一个static变量会怎样,函数返回static巴拉巴拉各种,回答到想吐
C++重载和重写区别在哪?怎么实现的?
STL了解吗?hash_map和map的区别?
char str、 char、const char str_list[]={“hello”,“world”}、malloc返回指针等的sizeof求值
uint16_t和uint32_t的强转相关
手写String类
解释深拷贝和浅拷贝
静态库和动态库
一个class需要实现什么才能满足map的需求
const关键字作用,要修改成员有什么办法(mutable)

2:数据结构与算法
链表上的快速排序
蓄水池问题
外部排序
翻转链表
非递归输出二叉树的后序遍历
工作队列用的什么数据结构,多线程同步怎么处理
反转链表?
冒泡排序和快排;时间复杂度多少?
合并两个排序链表
栈和队列,如何用2个栈实现队列,如何用2个队列实现栈
hash hash_map了解多少说多少
hash冲突怎么解决

3:计算机网络
TCP与UDP区别,三次握手,四次挥手
TCP建立连接的过程
http协议格式
http协议的关键点
http都了解多少?会用socket吗?
http的状态码都了解多少
手写TCP server和client的几个步骤的代码
TCP的三次握手并画图
time_wait状态介绍一下?
TCP的三次握手,哪一次可以携带数据

4:操作系统(网络编程)
要求实现单例模式,写完后要求改进满足线程安全
同步IO与异步IO的区别。 答完后问我可不可以举个例子
进程调度方式(先来先服务,最短工作优先,最优响应比优先,时间片轮转
线程同步方法(互斥锁,信号量,条件变量)
死锁是怎样的
epoll和select区别 epoll和select区别,epoll比select多的事件有哪些
epoll两种触发模式
epoll和select区别,epoll底层原理,线程池实现思路,如果所有线程都在工作,又来了一些任务,这时候会发生什么,工作队列同步
IO的多路复用有什么总结吗?epoll用过吗?遇到过什么问题?怎么解决的?
处理过高并发吗?epoll了解吗?epoll都有哪几种工作模式?epoll和select比较的优势。
Linux多线程并发机制
Linux有哪些锁
服务器挂掉了重启发现端口被占用了,可以在编程避免吗(setsockopt,reuseaddr)
讲解一下线程池模型
高并发频繁加锁对性能有影响吗,怎么优化(减小锁的粒度,无锁队列)
主线程往工作队列加任务,如果请求量大,主线程可能工作不过来吗
worker线程处理ok,主线程出现瓶颈怎么做
写个生产者和消费者的程序
生产者消费者模型(问了很多场景怎么用进程和线程解决)
进程和线程的区别,进程间通信有哪几种方式?
进程间通信的管道实现原理? 进程间通信的几种方式和各自的特点
虚拟内存了解多少
TCP的三次握手,每一次发送的报文的具体格式
socket编程:recv返回收到包是真的收到包了吗?
自旋锁和读写锁的区别
TCP的四次挥手,为什么要四次挥手
TCP的四次挥手介绍一下?fin_wait和time_wait了解吗?time_wait如何避免?
用TCP发大包会出现什么情况?UDP会吗?
进程的地址空间,物理内存和虚拟内存,虚拟内存的机制,能否重叠?

5:linux
Linux系统了解深吗,命令,用了什么网络编程接口
Linux多线程并发机制
shell脚本懂吗,awk,cd
静态库和动态库
Linux用得最多的命令,gdb查看所有线程的堆栈,怎么调试带参数的程序
netstat用来看什么信息,recvq,sendq什么意思,在网络过程中是属于什么阶段的数据
Linux下怎么调多进程多线程?
linux下查看进程、线程、cpu和存储的指令

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 10,049评论 1 29
  • 指针与数组的size 虚函数、重写、重载 public, private, protected 访问权限 publ...
    柚梨柚梨阅读 233评论 0 1
  • 必备的理论基础 1.操作系统作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口。 管理调度进程,并将多个进程对硬件...
    drfung阅读 2,636评论 0 5
  • C++: 多态: 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) c语言和c++有什么区别?(...
    Buyun0阅读 176评论 0 0
  • 包含的重点内容:JAVA基础JVM 知识开源框架知识操作系统多线程TCP 与 HTTP架构设计与分布式算法数据库知...
    消失er阅读 3,598评论 1 10
  • 现今,越来越多的孕妈妈开始关注自身肌肤问题,对护肤品的使用也更加理性,因为自怀孕后,受身体荷尔蒙分泌变化影...
    我是你的小迷妹阅读 415评论 1 1
  • 1.block 传值 #import "ViewController.h" #import "SendViewCo...
    Hello_World2017阅读 126评论 0 0
  • 故事讲述了一只残废了一只脚只能坐在轮椅上的主人公猫三奇和他的狗狗小不点相依为命的故事,站在他的角度看世界,对生活中...
    小闲云阅读 287评论 2 4
  • 來趟村里生活一週,在這個季節什麼都不用你幹,柴是早準備好了,柴不夠還有苞米桿,肉也是年前就凍好的,早已通水通電通網...
    愛吃辣椒的驢子阅读 85评论 0 0