第8周
C++ 基础特性入门
本周聚焦 C++ 基础入门,解析基础概念,搭建知识框架;探讨 C++ 相较 C 的优势特性,提升代码安全与效率;实践引用、函数默认值等扩展功能,为后续 ROS 开发中复杂系统设计与性能优化筑牢语言根基。
课程安排:
1、学习C++基础特性、 C++版本、双重冒号作用;深入理解命名空间使用,包括命名空间嵌套、using声明和指令,掌握命名空间组织代码的方式。
2、学习函数增强特性,涵盖全局函数、函数模板、类模板的隐藏与重载,拓展函数运用能力,理解函数在 C++ 中的进阶特性;学习结构体在 C++ 中的增强内容,深化对结构体在 C++ 中不同于 C 语言的理解。
3、深入理解运算符重载,涉及基本、三元表达式、赋值、const 等运算符重载,以及 const 成员函数、内存分配函数的特殊重载,掌握运算符在 C++ 中的自定义方式。
4、学习C++的引用相关内容,理解引用语法、引用做参数传递、引用底层原理;明确指针引用,掌握引用在 C++ 中的使用及原理。
第9周
C++ 类与对象进阶
在 ROS 开发中,C++ 类与对象机制是高效代码封装核心。本周详解访问权限与构造函数、数据封装与初始化;剖析初始化列表与对象模型,解析内存管理;实践运算符及函数重载。助力规范封装节点模块、优化架构,为复杂功能实现筑基。
课程安排:
1、讲解构造与析构函数,详细剖析构造函数分类、调用时机及细节,以及析构函数调用规则。深入探讨值传递时拷贝构造函数调用、浅拷贝与深拷贝问题,掌握对象生命周期关键函数。
2、讲解类的初始化与关键字,介绍初始化列表写法,讲解类对象作为类成员的情况,了解 explicit 关键字避免隐式转换,掌握 new 和 delete 操作符及使用注意点。
3、细化静态成员与单例模式:学习静态成员变量和函数,明确 const 静态成员属性,深入理解单例模式,掌握经典实现模型。
4、深入友元与运算符重载,知晓全局函数和类作为友元的用法,重点掌握运算符重载实现函数重载的细节,包括左移、自增等运算符重载,以及智能指针、赋值和算术运算符重载,拓展类的操作功能。
第10周
C++ 高级特性与编程范式
本周 C++ 四大核心展开,解析继承机制,奠基 ROS 代码复用;探究虚函数与抽象类,助力模块交互;详解函数模板,提升 ROS 数据处理通用性;学习类型转换等,增强 ROS 系统稳定性。提升复杂场景编程能力。
课程安排:
1、介绍虚函数基础,讲解虚函数基本原理、继承时虚函数的表现,以及虚函数的声明和访问规则,构建虚函数的基础认知体系。
2、细化虚函数进阶,深入探讨虚函数表、虚函数与成员变量关系,以及菱形继承中虚函数问题,剖析虚函数在复杂继承结构中的特性;学习多态的概念、分类(静态多态、动态多态),掌握动态多态实现原理,包括父类指针指向子类对象时的多态调用,理解多态在面向对象编程中的核心作用。
3、讲解模板基础,介绍模板概念、通用实现,以及模板的重载规则,掌握模板的基本使用方式,开启泛型编程入门。
4、介绍异常处理,了解 C++ 异常机制基础,包括异常抛出、捕获和处理流程,掌握自定义异常类及异常处理的常见场景应用,增强程序健壮性。
第11周
C++ 标准模板库(STL)
C++ 的 STL 是 ROS 处理数据关键工具。本周详解 STL 容器基础、string、vector 动态存储与遍历;实践 deque、stack 特性与操作。运用 STL 优化数据结构,为传感器数据处理等提供支持。
课程安排:
1、讲解STL基础,阐释STL概念与基础语法,介绍基础容器,掌握遍历容器(包括自定义数据类型遍历)及容器嵌套容器遍历方法,搭建 STL 认知框架。
2、介绍string 容器,全面讲解 string 容器赋值、存取字符、拼接、查找、插入删除、替换、比较、类型转换、大小写转换等操作,熟练掌握字符串处理技巧。
3、介绍vector 容器,剖析 vector 容器动态容量空间,介绍构造函数、常用赋值操作、大小获取、元素存取、插入删除,以及巧用 swap 收缩内存和 reserve 预留空间,灵活运用 vector 容器。
4、介绍其他序列式容器,介绍 deque 容器、stack 栈容器、队列容器和 list 容器,涵盖 list 容器排序、删除自定义类型等操作,了解不同序列式容器特性与应用场景。
第12周
C++ 常用算法及相关技术
在 ROS 开发中, C++ 常用算法与技术是提升效率的关键,本周首探函数对象等算法,实践查找、排序等常用算法,学习时间处理与类型转换,掌握 XML/YAML 配置管理及多线程并发。助你优化 ROS 数据流程,提升性能。
课程安排:
1、讲解函数对象与适配器,介绍函数对象(仿函数)概念,包括一元、二元谓词,以及函数对象适配器(取反、函数、成员函数适配器等),理解函数对象在算法中的应用与灵活适配机制。
2、介绍常用算法涵盖查找类,如 transform 搬运数据、find 普通查找、find_if 按条件查找、adjacent_find 找相邻重复元素、binary_search 二分查找;统计类的 count 统计元素个数;排序类有 sort 排序、shuffle 随机打乱、reverse 反转、copy 拷贝;集合类包括交集、并集、差集算法 ,可用于处理集合间关系。
3、介绍时间相关技术,介绍时间起始点、自定义时间间隔、时间换算、精准时钟,掌握时间相关操作,满足时间处理场景需求。
4、讲解 lambda 表达式基础(捕捉列表、参数、函数体等)、thread 线程基础、数据打印到容器及容器数据读取,拓展编程中不同场景的处理能力。