程序员面试里面语言是必考的,对于后台开发而言,通常会是C++和JAVA这两种语言让你选一种来面试。我因为只会写C++,所以就来总结一下C++。
知识点可以按照《Effective C++》条款001里面分为4个层次:
一. C语言层次的知识点
1. 编译的过程,预编译(pre_processor),编译(compiler),汇编(assembler),链接(linker),执行。 常考的题目 #define在哪一个阶段,会有哪些问题。
2.指针是什么(维基百科,数据类型+实体)
3.数组是什么,数组和链表的区别(存储,访问)
4.堆和栈的区别
5.内存对齐
6。union
二. 面向对象C++的知识点
1.面向对象的特点,优点(对象,封装,多态,继承,重载(数据抽象,继承,动态绑定))(扩展型,复用性),每一个特点的解释。
2.多态的实现,虚函数,虚函数列表(必考题),虚函数指针
可以参考这篇文章(http://blog.csdn.net/haoel/article/details/1948051)
3.虚继承,http://blog.csdn.net/jackystudio/article/details/17877219 http://en.wikipedia.org/wiki/Virtual_inheritance
4.继承是什么,继承的方式()
5.初始化列表,好处,什么时候必须
6.拷贝构造函数和赋值的区别
7.重载和覆盖
8.指针和引用
9.static的作用
10.const作用
11. value,reference 作为参数
12. 单例实现
13. class and struct的区别(成员属性,继承)
14. 纯虚函数,纯虚类
15.volitale
三. tempelate C++
这个点貌似什么问题,想想再补充
四.STL
1. 组成。sequence container, algorithm,iterator,allocator,adaptors,Associative containers
2. iterator 失效
3. 每一个组成的原理
4.sort, swap