AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C++
C++
级别 40
const T&:无复制的读取与对临时量的绑定
C++ SELF
等级 40,
课时 0
解析为什么在 C++ 中参数常常以
const
T
&
的形式接收:它如何消除多余的复制,使 API 在契约上为“只读”,允许传递临时值,并触发临时对象的寿命延长(lifetime extension)。通过
std::string
、
std::vector
、函数参数以及
auto
/
const
auto
&
的细节示例,并分析常见错误。
从函数返回引用
C++ SELF
等级 40,
课时 1
我们来解析在 C++ 中“函数返回引用”到底意味着什么:返回按值(
T
)和返回引用(
T
&
、
const
T
&
)有何不同,如何避免得到一个
dangling reference
,为什么对
std::vector
元素的引用可能会“失效”,以及哪些契约更容易通过
T
*
和
nullptr
来表达。在小型示例工程
TaskTracker
中展示安全和危险的模式。
迭代器 vs 指针 — 相似点与不同点
C++ SELF
等级 40,
课时 2
我们来探讨在 C++ 中指针(
T
*
)和迭代器(
begin()
/
end()
)的相似之处与根本区别:范围遍历契约
[
begin
,
end
)
、
end()
作为“在最后之后”的意义、抽象层级的差别、
const
/
const_iterator
,以及在小项目
TaskBook
中的实战(通过迭代器和通过指针查找并修改任务)。
const T*, T* const, const T* const:如何使用
C++ SELF
等级 40,
课时 3
解析在 C++ 中与指针一起使用的
const
:什么是“指向
const
的指针”(
const
T
*
)与“
const
指针”(
T
*
const
)的区别,如何通过两个问题来读懂带有
*
p
和
p
的声明,为什么可以“收窄权限”(
T
*
→
const
T
*
),以及在实际中这如何变成清晰的函数契约。
签名中的 const‑契约
C++ SELF
等级 40,
课时 4
解析在签名中将
const
视为“访问契约”:何时选择
const
T&
与
T&
,何时适用指针
const
T*
/
T*
来表示“对象可能不存在”(以及为何在那种情况下必须检查
nullptr
),还有在哪里返回
const
&
是安全的、在哪里会变成生命周期错误。所有结论都通过 Task 模型、一个简单的“任务列表”小应用、一张备忘表和一个参数选择图来巩固。
Please enable JavaScript to continue using this application.