先问自己:你真的吃透了引用与堆区开辟吗

这门课只讲一件事:在 C++ 里怎么用引用,以及怎么用 new 与 delete 管理堆区空间。别觉得这俩词眼熟就跳过。很多从 C 迁过来、或者一直写简单业务代码的人,对引用的理解还停在“就是起个别名”这一层;一碰到引用做函数返回值、对象指针的引用做参数,脑子里就开始发糊。堆区开辟也一样,new 完忘了 delete、或者 delete 了又去解引用,是真实工程里最常见的崩溃源头。这门课解决的就是这种“看过书、抄过代码,但一动手就错”的能力缺口。它默认你已经会写基本的 C++ 语法、知道类和对象是什么,但不要求你懂模板元编程。如果你连指针和数组的区别都讲不清,先去补基础,别硬听。

建议先看哪几块,以及资料怎么配合练习

不要按顺序一节节磨,先抓三段。第一段是引用做返回值与函数参数,这是引用真正发挥价值的场景,也是最容易写出悬空引用的地方;第二段是 new 与 delete,重点看它们配对时的时机和常见误用;第三段是 const 引用与 const 指针,这块考的就是你对只读语义和临时对象生命周期的理解。资料包里的示例代码不是给你读完就走的,你要做的是:每看完一段,自己写一个最小可复现的例子,故意把引用绑到临时变量、或者 new 完不 delete,观察编译器报什么、运行时崩在哪。这种“故意写错再改对”的练法,比单纯抄正例管用得多。配套资料只当对照参考,别当成答案背。

学完应能独立回答的几个问题

判断自己有没有学进去,不看你记了几条结论,看你能不能独立回答并写出代码。第一,函数返回引用时,什么情况下可以返回局部变量、什么情况下绝对不行,原因是什么?第二,对象指针的引用做参数,比直接传对象指针多解决了什么问题,画一下调用前后的内存关系。第三,const 引用绑定到临时对象时,这个临时对象的生命周期会被延长到什么程度,这和直接传值有什么本质区别?第四,new 出来的空间如果没配对 delete,除了内存泄漏,还可能在什么场景下引发更难查的崩溃?如果这四个问题你都能说清、写对代码,这门课你才算补到位。说不清的,回去重看对应实例,别假装会。

课程目录

1-1 [引用与空间开辟] 本部分视频介 (13:12)
1-2 [引用与空间开辟] 实例01-m (22:33)
1-3 [引用与空间开辟] 实例02-new与delete (15:21)
1-4 [引用与空间开辟] 实例03-引用基本实例 (19:15)
1-5 [引用与空间开辟] 实例04-引用做返回值 (15:01)
1-6 [引用与空间开辟] 实例05-引用做函数参数 (18:02)
1-7 [引用与空间开辟] 实例06-对象的指针引用 (17:19)
1-8 [引用与空间开辟] 实例07-对象的指针引用做参数 (16:27)
1-9 [引用与空间开辟] 实例08-引用高级实例 (42:52)
1-10 [引用与空间开辟] const引用与const指针 (09:31)
1-11 [引用与空间开辟] 总结 (15:28)