阶段一:C++基础入门阶段
此阶段学完之后可以理解和使用面向对象思想;熟练设计和使用类;熟练使用继承、多态、组合、聚合等技术;可以开发小型命令行程序(类似shell、wc、grep等)和图形界面程序(类似记事本、计算器等)。
课程内容:
- C语言到C++语言的过渡
- C++面向对象思想
- C++类的定义与对象创建
- 复制控制
- 操作符重载与转换
- 友元函数与友元类
- 多态实现与原理分析
- C++文件读写操作
- 异常处理
- C++11新增语法简介
项目实战:人工智能五子棋人机对战程序AlphaGobang

应用场景:
游戏开发是C++开发的一个主要方面,因为C++同时具有高开发效率和高执行效率两个特点。通过开发AlphaGobang熟悉C++图形界面开发和游戏逻辑规则开发。
阶段二:STL基础入门阶段
此阶段学完之后可以熟练使用各种常见的容器和算法;熟悉模版的编写和原理;掌握常用容器、迭代器和算法实现原理。
课程内容:
- 模板编程基础
- 顺序容器
- 关联容器
- 迭代器
- 泛型算法入门
- C++11新增语法简介
项目实战:实现小型STL库miniSTL

应用场景:
STL是C++的标准模板库,是模板编程非常经典的案例。无论笔试还是面试都会涉及到它的一些实现问题,所以自己手动实现一部分经典STL是C++学习一个必须的过程。
通过miniSTL,我们还将学习软件开发中的单元测试和接口文档编写,接触真实的软件开发。
阶段三:C++进阶阶段
此阶段学完之后可以熟练掌握企业级常用开发技术以及原理;深入了解C++重载原理和对象模型。
课程内容:
- 重载原理分析
- 动态库静态库的制作与使用
- C++类型转换
- C++对象模型简介
项目实战:多级别多输出可配置日志库TinyLog

应用场景:
企业级C++开发中,直接开发可执行文件的情况约占30%,更多的情况是开发动态库或者静态库。所以,熟练开发动态库和静态库是C++必须掌握的技能。
日志模块是所有大型系统中不可缺少的部分,通过日志开发和使用,初步了解大型系统开发方式和调试方法。
阶段四:STL进阶阶段
此阶段学完之后可以掌握各种高级STL技术;能够使用各种智能指针并理解底层实现原理。
课程内容:
- 空间配置器
- 萃取编程技巧
- 仿函数
- 容器适配器
- 泛型算法进阶
- 智能指针应用与分析
- C++11 lambda表达式
项目实战:智能指针库SmartPtr




应用场景:
C++最复杂和最容易出错的是内存管理,智能指针简化了内存管理方式。本阶段通过实现各种智能指针,熟练掌握C++高级内存管理方式,远离内存泄露风险。
阶段五:第三方库使用与分析
此阶段学完之后可以熟练搭建第三方库,熟练编写和实施代码单元测试,熟练使用boost和asio开发和发布程序。
课程内容:
- C++测试框架CppTest环境搭建与使用
- boost标准库开发环境搭建与使用
- asio环境搭建与使用
项目实战:高性能HTTP静态服务器

应用场景:
服务器程序开发是C++开发的另一个重要的方向,通过开发HTTP服务器,了解HTTP协议,掌握网络开发的基本流程和方法。
阶段六:区块链
此阶段学完之后可以区块链核心原理、交易流程和应用场景,能够设计和开发区块链程序。
课程内容:
- 区块链核心概念
- 区块链白皮书解读
- 比特币原理分析
- 比特币源码解读
- 以太坊原理分析
- 以太坊源码解读
项目实战:WestOSCoin数字货币

应用场景:
区块链是当前非常热门的技术。在本阶段,学习区块链的相关概念和技术,结合前面学习到所有C++技能,自己手动实现一个数字货币。
网友评论