人工精选C++的友元函数和友元类-第2部分第6课
这门课解决什么问题 C++ 的友元机制是初学者最容易跳过、但在实际工程中经常碰到的特性。你会在操作符重载、类间数据交互、数值转换这些场景里需要它,但如果之前没系统学过,往往只能靠搜索片段代码拼凑理解。这门课把友元函数和友元类的设计意图、两种不同的实现方式、以及它们在什么工作场景下真正有用讲透。 具体
会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
这门课解决什么问题
C++ 的友元机制是初学者最容易跳过、但在实际工程中经常碰到的特性。你会在操作符重载、类间数据交互、数值转换这些场景里需要它,但如果之前没系统学过,往往只能靠搜索片段代码拼凑理解。这门课把友元函数和友元类的设计意图、两种不同的实现方式、以及它们在什么工作场景下真正有用讲透。
具体来说,你会遇到这类问题:一个类需要访问另一个类的私有成员,或者需要在类外写一个函数来操作类的内部数据——直接破坏封装不行,暴露 getter/setter 又显得啰嗦。友元就是 C++ 提供的答案,但滥用它会导致代码耦合度很高。这门课不仅教你怎么写,还会讲清楚什么时候不应该用。
适合什么基础,建议先看哪块
你需要已经掌握类的基本概念(成员变量、成员函数、访问控制符)和操作符重载的基础。如果还没学过类的私有成员访问控制,先把前面的章节过一遍。
建议这样看:先从"什么是友元函数"开始了解概念,再看"友元函数的两种实现"——一种是普通函数作为友元,另一种是把一个类的成员函数声明为友元。这两部分是基础,搞懂了再进入"为什么会有友元函数"这两讲,这里会用实际场景(比如操作符重载中为什么需要访问另一个对象的私有成员)来说明设计考量。友元类和嵌套类、局部类这些进阶内容可以按顺序跟着学,它们相辅相成。最后的"数值与对象互转"是一个实战化的综合应用。
学完能独立做什么,资料怎么配合练习
学完这门课,你能在自己的代码里正确地使用友元机制来解决类间的数据访问问题。比如在写复数类或矩阵类时,需要支持 `a + b` 这样的操作,而加法的结果需要访问两个对象的私有成员——你就知道该怎么办了。你也能判断什么时候用友元、什么时候改用公开接口,而不是盲目地把所有东西都声明成友元。
建议的学习路线是:先看视频理解每个概念,然后立即动手在自己的编译环境里敲出友元函数的声明和实现,试试普通函数作为友元和成员函数作为友元的区别。特别是在操作符重载的实验中,对比一下用友元和不用友元时代码的可读性。最重要的是在嵌套类和类型转换这两个章节做练习题,这些是容易出错的地方。不要只看视频,一定要写代码,让编译器告诉你哪些地方理解错了。
课程目录
课程目录7 集
- 1 2.6.1.什么是友元函数 (27:45).mp4
- 2 2.6.2.友元函数的2种实现 (27:21).mp4
- 3 2.6.3.友元类 (22:36).mp4
- 4 2.6.4.为什么会有友元函数1 (28:26).mp4
- 5 2.6.5.为什么会有友元函数2 (26:09).mp4
- 6 2.6.6.嵌套类和局部类 (24:13).mp4
- 7 2.6.7.数值与对象互转 (28:04).mp4





