C++后台开发面试题总结(涉及C++基础知识、多线程多进程、TCP/IP网络编程、Linux操作、数据结构与算法)
因巩固知识体系,面试,梳理以往看到过的知识点,故总结如下相关题目,题目答案请自行google baidu,这里只提供题目。
一、C++基础知识面试题总结
1、多态的实现
2、说说C/C++的区别
3、const关键字
4、说说malloc/free 和 new/delete区别
5、指针和引用的区别
6、C++中堆和栈的区别
7、关键字static
8、在C++程序中调用被C语言修饰的函数,为什么要加extern “C”
9、如何防止头文件被重复包含
10、什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?
11、描述一下封装、继承、多态
12、堆栈缓存方式的区别
13、STL容器有哪些,常用的算法
14、什么是面向对象
15、用过的设计模式,简单举几个例子
16、如何理解智能指针,什么时候改变引用计数
17、share_ptr与weak_ptr的区别与联系
18、表述下string的Copy-On-Write技术,写时copy
19、描述下C++的浅copy,深copy,写时copy和引用计数的copy
20、C++构造函数是否可以抛出异常
21、是否在析构函数抛出异常
22、构造函数中,成员变量一定要通过初始化列表来初始化的
23、volatile的作用
24、构造函数和析构函数可以调用虚函数吗
25、内存对齐的原则
26、内联函数有什么优点?内联函数和宏定义的区别
27、数组与指针的区别与联系,函数指针,指针函数,指针数组,数组指针
28、STL set 和 map都是基于什么实现的
29、常见的内存错误及其对策
30、三种内存对象的比较
31、C++内存泄露及检测工具
32、什么时候要用虚析构函数
33、#include<a.h> 与#include”a.h”的区别
34、什么是RTTI (Run-time type identification)
35、引用作为函数参数有哪些特点
36、在什么时候需要使用常引用
37、将引用作为函数返回值类型的格式、好处和需要遵守的规则
38、结构体和联合体的区别
39、重载和重写的区别
40、栈内存与文字常量区
41、struct和class的区别
42、如何判断浮点数是否相等,LONG呢
43、不允许重载的5个运算符
44、拷贝构造函数在哪几种情况下会被调用
45、什么时候必须重写拷贝构造函数
46、静态成员函数存在的意义
47、流运算符为什么不能通过类的成员函数重载
48、当一个类中没有任何成员变量和成员函数,这时sizeof(A)的A值是多少,
49、如果不是零,请解释一下编译器为什么没有让他为零
50、多态的作用
51、什么函数不能声明为虚函数
52、系统会自动和关闭的3个标准的文件是
53、说出字符常量和字符串常量的区别,并使用sizeof 计算有什么不同
54、Windows消息系统由哪几部分构成
55、assert()的作用
56、Windows的消息机制
57、SendMessage和PostMessage的区别
58、Dll和lib的区别
59、多线程如何实现通讯,如何进行同步
60、stl实现了那些排序算法
61、一元、二元仿函数的区别和使用背景
62、智能指针可以放到容器中么
63、请简述Windows内存管理的方式
64、strcpy和memcpy使用时的注意事项,strncpy、memncpy的区别
65、const和static能同时修饰成员函数吗
66、何时编译器会自动生成默认构造函数
67、何时编译器会自动生成拷贝构造函数
68、动态链接库和静态链接库的区别
69、描述一下函数调用的整个过程
70、C++ STL vector的实现机制
71、面向对象是一种思想,如何使用C语言来实现
72、C++有哪些数据类型,为什么long和int都是4字节
73、Java和C++的区别是什么,分别用在什么场景比较好
74、函数调用类型_cedecl,_stdcall,_fastcall
75、什么是序列化和反序列化
76、用预处理指令声美一个常数,用以表明1年终有多少秒
77、strtok函数在使用上要注意什么问题
78、char * const p ,char const * p, char const * const p区别
79、介绍一下右值引用和移动语义和完美转发