C++ 面向对象实战:从语法应用到架构设计

本课程聚焦 C++ 中高级开发者的核心痛点:如何跳出单纯的语法记忆,真正掌握在大型工程中驾驭面向对象设计的逻辑。很多开发者能熟练写出类与函数,但在面对复杂业务时,往往写出“能跑但难维护”的烂代码。课程通过大量工程实战案例,剖析如何在真实场景下运用面向对象思想解决耦合、扩展性差等难题,帮助学习者完成从初级程序员到架构师思维的关键跨越。

资料匹配与学习路径建议

课程资料按“实战应用”到“设计模式”的递进逻辑编排,适合已掌握 C++ 基础语法、准备进阶的开发者。建议优先观看“阶段一:C++ 面向对象编程在工程实战中的应用”,特别是关于类的设计原则与接口管理部分。待理解基础实战后,再进入“阶段二:C++ 面向对象设计模式精讲”,系统学习单例、工厂、建造者等具体模式及其实现陷阱。切勿直接跳跃至模式学习,否则容易陷入死记硬背的误区,导致在实际项目中生搬硬套。

学完能独立胜任的工作场景

学完本课程后,你将具备独立设计中等规模 C++ 系统架构的能力。具体而言,你可以独立规划模块间的依赖关系,合理运用单例模式管理全局配置或日志系统,利用工厂模式处理多态对象的动态创建,并通过抽象工厂或建造者模式解决复杂对象的构建问题。更重要的是,你能识别并规避设计中的反模式,编写出代码清晰、易于后期维护与扩展的高质量 C++ 代码,满足中高级岗位对代码规范与架构能力的高标准要求。

课程目录

课程目录118 集
  • 阶段二:C++面向对象设计模式精讲
  • 01 1-1 面向对象设计模式的定义,什么时候该使用设计模式 最近学习.mp4 32.94M
  • 02 1-2 一个实例说明设计模式的本质1 .mp4 24.19M
  • 03 1-3 一个实例说明设计模式的本质2 .mp4 134.25M
  • 04 1-4 面向对象设计模式的分类和设计原则1 .mp4 43.00M
  • 05 1-5 面向对象设计模式的分类和设计原则2 .mp4 78.98M
  • 06 1-6 除了面向对象设计模式,还有什么模式 .mp4 31.86M
  • 07 1-7 反模式1 .mp4 46.96M
  • 08 1-8 反模式2 .mp4 81.80M
  • 09 1-9 单例模式及单例模式实现的坑1 .mp4 48.20M
  • 10 1-10 单例模式及单例模式实现的坑2 .mp4 134.64M
  • 11 1-11 单例模式及单例模式实现的坑3 .mp4 47.05M
  • 12 1-12 单例模式的例子-日志和全局配置类1 .mp4 143.13M
  • 13 1-13 单例模式的例子-日志和全局配置类2 .mp4 139.59M
  • 14 1-14 单例模式的例子-日志和全局配置类3 .mp4 144.78M
  • 15 1-15 抽象工厂模式及示例1 .mp4 105.16M
  • 16 1-16 抽象工厂模式及示例2 .mp4 104.65M
  • 17 1-17 Builder生成器模式及示例1 .mp4 128.49M
  • 18 1-18 Builder生成器模式及示例2 .mp4 126.48M
  • 19 1-19 工厂方法模式及示例1 .mp4 107.21M
  • 20 1-20 工厂方法模式及示例2 .mp4 103.79M
  • 21 1-21 工厂方法模式及示例3-UML架构和创建型模式总结 .mp4 30.85M
  • 阶段一:C++面向对象编程在工程实战中的应用
  • 01 1-1 CPP中高级工程师成长体系课导学 .mp4 51.10M
  • 02 1-2 WindowsC++环境的搭建 .mp4 112.10M
  • 03 1-3 Mac++环境的搭建 .mp4 63.17M
  • 04 1-4 Linux Ubuntu发行版环境的搭建C++环境的搭建 .mp4 127.07M
  • 05 1-5 QT环境的搭建 .mp4 118.87M
  • 06 1-6 HelloWorld从面向过程编程到面向对象编程的过渡 最近学习.mp4 86.27M
  • 07 1-7 从微软公司的一道面试题来谈从面向过程到面向对象 .mp4 151.43M
  • 08 1-8 从面向过程编程到面向对象过渡的理论分析 .mp4 34.81M
  • 09 1-9 面向对象三大特性及实现一个不能被继承的类 .mp4 110.41M
  • 10 1-10 少用继承及接口继承的使用 .mp4 101.26M
  • 11 1-11 少用虚函数及函数指针代替虚函数的方案 .mp4 98.56M
  • 12 1-12 面向对象编程的两个常见错误理解 .mp4 42.64M
  • 13 1-13 C++避免钻石继承的方法--虚继承 .mp4 78.36M
  • 01 1-1 怎么实现一个MyString的Class .mp4 88.93M
  • 02 1-2 Class的321实现 .mp4 87.17M
  • 03 1-3 MyString的move基本实现 .mp4 88.31M
  • 04 1-4 C++面向对象编程基础原则 .mp4 7.57M
  • 05 1-5 再看MyString的构造实现 .mp4 68.13M
  • 06 1-6 防止构造函数的隐式转换类型 .mp4 84.71M
  • 07 1-7 C++的值类型和引用类型 .mp4 87.02M
  • 08 1-8 一些重要概念:左值、右值、左值引用、右值引用等 .mp4 108.94M
  • 09 1-9 左值右值相关 .mp4 103.24M
  • 10 1-10 move语义的意义和使用细节 .mp4 93.73M
  • 01 1-1 编译器优化与mov的语义的关系及返回值优化 最近学习.mp4 113.46M
  • 02 1-2 返回值优化:RVO和NRVO .mp4 52.90M
  • 03 1-3 返回值优化策略的选择 .mp4 89.96M
  • 04 1-4 const的基本使用 .mp4 88.55M
  • 05 1-5 const的修饰对象的引用和函数 .mp4 112.70M
  • 06 1-6 const、mutable和volatile .mp4 124.53M
  • 07 1-7 再谈构造函数--什么该做什么不该做 .mp4 33.97M
  • 08 1-8 再谈构造函数--初始化顺序和参数列表 .mp4 90.80M
  • 09 1-9 构造函数静态成员变量的初始化 .mp4 93.13M
  • 01 1-1 函数重载 .mp4 134.52M
  • 02 1-2 重载函数的本质和实现原理 .mp4 96.51M
  • 03 1-3 运算符重载 .mp4 81.08M
  • 04 1-4 Rational类的实现 .mp4 91.36M
  • 05 1-5 Rational类的运算符重载实现 .mp4 143.73M
  • 06 1-6 函数对象的本质是什么.mp4 83.71M
  • 07 1-7 函数对象的本质是什么.mp4 116.14M
  • 08 1-8 函数内部怎么定义函数--lambda表达式 .mp4 116.63M
  • 09 1-9 Lambda表达式实现闭包 最近学习.mp4 199.49M
  • 10 1-10 Lambda表达式和函数对象使用的类比.mp4 109.42M
  • 11 1-11 Lambda表达式和函数对象使用的类比.mp4 152.03M
  • 12 1-12 Lambda表达式的意义 .mp4 109.40M
  • 13 1-13 inline内联函数的使用和本质 .mp4 141.61M
  • 01 1-1 几道面试题来看堆和栈在内存分配和传递 .mp4 90.21M
  • 02 1-2 几道面试题来看堆和栈在内存分配和传递2 .mp4 88.86M
  • 03 1-3 CPP的内存世界划分 .mp4 80.72M
  • 04 1-4 从一个经典函数错误起谈谈栈空间调试 .mp4 157.66M
  • 05 1-5 汇编调试基础1 .mp4 86.50M
  • 06 1-6 汇编调试基础2 .mp4 22.24M
  • 07 1-7 从汇编角度看程序函数栈和main函数流程1 .mp4 138.44M
  • 08 1-8 从汇编角度看程序函数栈和main函数流程2 .mp4 124.33M
  • 09 1-9 从堆栈角度来分析ShellCode和软件安全1 .mp4 54.66M
  • 10 1-10 从堆栈角度来分析ShellCode和软件安全2 .mp4 102.54M
  • 11 1-11 C++中资源分配的方式RAII .mp4 17.36M
  • 12 1-12 析构函数为什么是虚函数及RAII的具体使用 .mp4 160.57M
  • 13 1-13 在异常情况下RAII如何保证资源的顺利释放 .mp4 101.43M
  • 01 1-1 怎么实现智能指针 .mp4 153.08M
  • 02 1-2 CPP中常见的智能指针 .mp4 170.34M
  • 03 1-3 CPP中常见的智能指针 .mp4 95.82M
  • 04 1-4 CPP中到底该不该用异常 .mp4 74.55M
  • 05 1-5 怎么用异常.mp4 104.41M
  • 06 1-6 怎么用异常.mp4 143.09M
  • 07 1-7 怎么用异常.mp4 139.03M
  • 08 1-8 1-new的实现细节,如果new失败了怎么办,工程中怎么处理new .mp4 70.71M
  • 09 1-9 2-new的实现细节,如果new失败了怎么办,工程中怎么处理new .mp4 103.67M
  • 10 1-10 3-new的实现细节,如果new失败了怎么办,工程中怎么处理new .mp4 98.86M
  • 11 1-11 4-new的实现细节,如果new失败了怎么办,工程中怎么处理new .mp4 106.36M
  • 12 1-12 5-new的实现细节,如果new失败了怎么办,工程中怎么处理new .mp4 88.56M
  • 13 1-13 CPP对象模型初步1 .mp4 66.70M
  • 14 1-14 CPP对象模型初步2 .mp4 72.00M
  • 15 1-15 CPP对象模型初步3 .mp4 120.96M
  • 16 1-16 动态多态和静态多态 .mp4 93.75M
  • 17 1-17 CPP的模板编程1 .mp4 96.03M
  • 18 1-18 CPP的模板编程2 .mp4 120.63M
  • 19 1-19 CPP的模板编程3 .mp4 140.64M
  • 20 1-20 CPP11中对模板编程的高级支持1 .mp4 134.68M
  • 21 1-21 CPP11中对模板编程的高级支持2 .mp4 107.86M
  • 22 1-22 CPP11中对模板编程的高级支持3 .mp4 88.30M
  • 01 1-1 第七周内容更新说明 最近学习.mp4 3.31M
  • 02 1-2 爬虫需求分析 .mp4 90.51M
  • 03 1-3 QT的基本使用,工程创建等.mp4 33.77M
  • 04 1-4 QT的基本使用,工程创建等.mp4 93.91M
  • 05 1-5 QT怎么实现一个简单的跨平台爬虫 .mp4 95.25M
  • 06 1-6 爬虫的网络类实现1 .mp4 125.65M
  • 07 1-7 爬虫的网络类实现2 .mp4 60.00M
  • 08 1-8 爬虫的网络类实现3 .mp4 219.25M
  • 09 1-9 爬虫的数据处理和数据存储1 .mp4 193.55M
  • 10 1-10 爬虫的数据处理和数据存储2 .mp4 174.78M
  • 11 1-11 爬虫的数据处理和数据存储3 .mp4 35.98M
  • 12 1-12 爬虫的数据处理和数据存储4 .mp4 103.27M
  • 13 1-13 爬虫的数据处理和数据存储5 .mp4 193.88M
  • 14 1-14 爬虫的整体逻辑 .mp4 27.66M
  • 15 1-15 爬虫的测试、存在待改进的问题1 .mp4 81.92M
  • 16 1-16 爬虫的测试、存在待改进的问题2 .mp4 101.49M
  • 17 1-17 爬虫的测试、存在待改进的问题3 .mp4 51.63M
  • 配套资料