C++面试常见问题整理(待补充)

1、 对于static的理解?
2、 Static修饰的全局变量和普通全局变量有什么区别?static修饰的局部变量和普通局部变量有什么区别?
3、 对于extern关键字的理解?
4、 用static修饰和extern修饰的变量有什么区别
5、 在c++程序中使用extern“C”的作用是什么?
6、 头文件中ifndef/define/endif的作用是什么?
7、 对于const关键字的理解,有什么用途。
8、 关键字define和const的联系和区别。
9、 #include<>和#include””的区别?
10、 评价C/C++各自的特点。
11、 sizeof和strlen有什么区别?
12、 指针和引用有什么区别?
13、 指针和数组有什么区别?
14、 空指针和悬垂指针有什么区别?
15、 Malloc/free和new/delete的区别?
16、 什么是只能指针?
17、 面向对象技术的基本概念是什么?
18、 面向对象技术的基本特征是什么?
19、 什么是封装?
20、 什么是继承?
21、 什么是多态?
22、 C++空类中默认有哪些成员函数?
23、 哪一种成员可以在一个类的实例之间共享?
24、 为什么构造函数不能是虚函数?
25、 为什么析构函数可以而且通常必须是虚函数?
26、 为什么不把所有函数都设置为虚函数?
27、 重载和覆盖(重写)有什么区别?
28、 公有继承、受保护继承和私有继承(三种继承方式)
29、 哪几种情况下只能用构造函数初始化列表而不能在构造函数中赋值初始化,为什
么?
30、 什么是虚指针?
31、 使用初始化列表初始化的时候,其初始化顺序是什么样的?
32、 如何阻止一个类被实例化?一般在什么时候将构造函数声明为private?
33、 main函数执行之前会执行什么?
34、 请描述进程和线程的区别?
35、 进程间如何通信?
36、 在网络编程中涉及并发服务器,使用多线程与多进程的区别?
37、 说一下TCP三次握手和四次挥手的过程。
38、 TCP和UDP有什么区别?
39、 调用函数时候要进行参数压栈,其压栈顺序是什么?
40、 经常要操作的内存分为哪几个类别?
41、 堆和栈的区别?
42、 Static数据成员和static成员函数
43、 如何引用一个已经定义过的全局变量?
44、 虚表和虚表指针实在什么时候建立的?
45、 C++函数中值的传递方式有哪几种?
46、 C++中是不是所有的动作都是由main()引起的?举例说明。
47、 内联函数和宏比较
48、 全局变量和局部变量的区别,是怎么实现的?操作系统和编译器是怎么区分的?
49、 对于频繁使用的短小函数,C和C++分别是怎么实现的?
50、 堆栈溢出一般是由什么原因导致的?
51、 局部变量和全局变量可以重名吗?
52、 什么是引用,对于引用的声明和使用有什么需要注意的?
53、 什么时候使用常引用?常引用有什么特点
54、 结构体和联合体的区别
55、 C++是不是类型安全的?
56、 预处理功能主要有哪些?
57、 拷贝函数在哪些情况下会被调用?
58、 类外如何访问类的非共有成员?
59、 有哪几个运算符不允许重载?
60、 流运算符为什么不能通过类的成员函数重载?如何解决?
61、 对象间如何实现数据共享的?
62、 什么是动态特性?
63、 什么是RTTI
64、 什么是拷贝构造函数?
65、 什么是深浅拷贝?
66、 面向对象设计有什么优点?
67、 谈谈你对多态的理解?
68、 谈谈编译器是如何实现多态的?
69、 子类对象的构造过程及其虚表指针的初始化过程是怎样的?
70、 是否可以将每个成员函数都声明为虚函数?为什么?
71、 C++中如何实现接口?
72、 纯虚函数是什么?
73、 内存泄露是什么?如何检查内存泄露。
74、 C++标准模板库中都有些什么容器,他们分别适用于什么场 景

你可能感兴趣的:(C/C++)