CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • noexcept — “不通过异常退出”的约定

    C++ SELF
    等级 46,课时 0
    解析在 C++ 中 noexcept 说明符到底意味着什么:为什么它是一个约定,会在违反时发生什么(调用 std::terminate())、为什么像 std::vector<T> 这样的容器特别重视 move 操作上的 noexcept,以及如何诚实地判断是否可以将函数标记为“不会抛出”。
    可用
  • 按值返回与 copy elision(NRVO)

    C++ SELF
    等级 46,课时 1
    我们来讲解为什么在现代 C++ 中按值返回对象是合理的:在 return 时发生了什么(复制、移动或消除多余操作)、 copy elision 和 NRVO 优化如何工作、为什么在 return 中通常不需要使用 std::move,以及在教学类型 Buffer(拥有资源、支持 move 语义、正确的生命周期)上的实践示例。
    可用
  • move 之后的状态:有效,但未指定……

    C++ SELF
    等级 46,课时 2
    我们来解析 C++ 中 moved-from 对象的“valid but unspecified”合同:为什么在执行 std::move 后不能读取旧数据,但可以安全地销毁对象、给它赋新值并再次移动。以 std::string 为例说明为什么“字符串变为空”不是保证,而只是某些实现的具体行为。然后设计自定义类型 Text,带上清晰的不变量( nullptr/ 0),讨论“半空”状态、允许的操作表以及典型错误。
    可用
  • 返回对局部变量的引用

    C++ SELF
    等级 46,课时 3
    我们来拆解 C++ 中最常见的 UB 来源之一:当你试图从函数返回指向局部对象的 T * 或 T & 时, dangling reference 和 dangling pointer 是怎样产生的。我们会理解局部变量在 return 时的生命周期,看看反例,选择安全的默认方案(按值返回),并固定几种正确的替代方式: std::optional<T>,以及在契约明确的前提下返回指向容器元素的指针。
    可用
  • 临时对象的生命周期

    C++ SELF
    等级 46,课时 4
    我们来解析在 C++ 中什么是临时对象(temporary)、“完整表达式”是什么意思以及为什么临时对象通常只活到 ;。通过 std::string 和引用的示例展示什么时候通过 const T & 会延长生命周期,为什么不能从 return 返回对临时对象的引用,以及在“优化”情况下如何避免得到 dangling reference。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym