一、语言基础
无论C++开发还是Java开发,对于码农来说,最重要的是熟悉编程语言。同理,无论从事何种工作,首当其冲的就是要掌握好语言基础。
C++是一种博大精深的编程语言,它既有继承于C语言的过程化程序设计思想,又包含了面向对象(OOP)的设计思想。有力且复杂。学习C++的费用相对较高,语言内部的漏洞也比较多。基本语文学习路线如下:
1、语法基础。
要点:(必须熟悉基本的机制原理)
使用指针和引用的概念指针与内存关系程序编译过程static、const、#define以及C和C++区别内存模型中的栈和堆分配。
2、面向对象基础。
(一定要熟悉基础机制原理)
OOD理解析构函数构造函数复制构造多态纯虚函数和虚函数虚函数实现机制虚函数表访问限定符public、private、protected继承原则、虚继承原则、菱形继承静态绑定和动态绑定重载、重写和隐藏new/delete和malloc/free。
3、语法进阶
(一定要熟悉基础机制原理)
在用智能指针的左值、右值引用和move语义类型转换方式时,通常采用设计模式线程安全的单例模式内存溢出和C++11的静态链接库和动态链接库。
4、STL标准模版资料库。
(必须能够进行源代码剖析)
迭代程序,空间配置程序了解常见的容器特性,使用方法和基础实现vector,list,deque,set,map,unorderedmap。
5、建议阅读书籍。
作为一本关于C++源码解析的工具书,阅读《EffectiveC++》对C++程序设计规范的深入研究,STL源码解析,极具学习价值。阅读《深入探究C++对象模型》,阅读《moreEffecticeC++》
二、算法和数据集的结构。
对一般人来说,学习算法最重要的就是能形成基本的算法思维,懂得从程序设