20170919_C++面试问题记录
1、多态性都有哪些?(静态多态和动态多态,然后分别阐述虚函数和函数重载。)
2、动态绑定是怎么实现的?(就是基类指针或者基类引用和派生类指针或者派生类引用的转换问题。)
3、C++中的四种类型转换有哪些?(四种强制类型转换,分别举例子说明。)
4、操作符重载(+操作符重载),具体的如何去定义?(让把操作符重载函数原型说一下。)
5、内存对齐原则是什么?(原则是什么,举例子说明一下。)
6、模板是怎么实现的?(举例子。)
7、指针和const 的用法?(就是四种情况说明一下。)
8、虚函数、纯虚函数、析构函数和虚析构函数?(纯虚函数如何定义的,为什么析构函数需要定义成虚函数。)
9、内联函数是什么意思?(讲一下内联函数和宏定义的区别,以及优点。)
10、const 和 typedef 的区别?(主要讲const 的用处,有哪些优点。)
11、排序算法有哪些?快速排序是什么实现的?最好时间复杂度、最坏时间复杂度、平均时间复杂度?
12、链接指示:extern “C” 的作用是什么?
13、C语言和C++语言有什么区别?(大致讲一下继承、多态、封装、异常处理等。)
14、你有什么需要问我的?
1、strcpy 函数编写?(这个必须很熟悉。)
2、数据结构中,二叉树的非递归遍历?(现场画图讲解。)
3、C++中的四种类型转换机制?(必须很熟悉。)
4、继承机制中对象之间是如何转换的?(就是指父类对象和子类对象之间的转换以及父类指针或引用与子类指针或引用之间的转换。)
5、继承机制中,引用和指针是如何转换的?
6、虚函数、虚函数表里面的内存是如何分配的?(必须要会。)
7、如何实现只能动态分配类的对象、而不能定义类的对象?(牛客网上题目,只能静态分配类的对象和只能动态分配类的对象,两种都要讲。)
8、STL有哪些容器?对比下vector和set?
9、红黑树的定义和解释?
10、const 关键字的作用?(const 成员函数、函数传递、和 define 的区别。)
11、静态函数成员和静态数据成员,有什么意义?
12、模板特化的概念是什么?为什么要特化?
13、explicit 是干什么用的?
14、strcpy 函数的返回类型是干嘛用的?
15、内存溢出有哪些因素导致的?
16、new 和malloc 的区别?delete 和free 的区别?
17、为什么要用C++中的static_cast 转换而不用C语言中的转换?
18、异常机制是怎么回事?
19、迭代器删除元素的话,会发生什么?
20、必须在类的构造函数初始化列表里进行初始化的数据成员有哪些?
21、类的封装:private、protected、public?
22、智能指针 auto_ptr?
来源:牛客网