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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • std::error_code — I/O、filesystem 的错误代码

    C++ SELF
    等级 55,课时 0
    我们来讲解在 C++ 中如何优雅地处理「外部世界」的预期失败(I/O、文件、权限)而不使用异常:什么是 std::error_code,为什么“空代码”表示成功,如何读取 message()/ value(),通过 std::errc 和 std::make_error_code 比较原因,以及带有 out 参数并在调用处检查 if ( ec) 的典型 API 风格是什么样子。
    可用
  • 统一错误策略——类别与消息

    C++ SELF
    等级 55,课时 1
    我们来分析,如何在控制台 C++ 应用中把错误设计成数据:使用 enum class ErrorKind + Error 模型,通过 print_error() 统一输出格式,遵守“一个错误 → 一份报告”的纪律,并使用稳定的 exit codes。实践部分基于一个带有 std::variant 的迷你 CLI,并把策略的中心点放在 run_app()/ main() 中。
    可用
  • template <typename T>: 适用于任意类型的代码

    C++ SELF
    等级 55,课时 2
    解析在 C++ 中函数模板如何消除复制粘贴:编写一个通过 template < typename T > 的“模板”,理解实例化( my_min < int >, my_min < double >), “操作契约”(需要 operator <, operator <<, operator +), 选择合适的参数( const T &, T &, T), 并为 std::vector 组装一个通用工具小项目。
    可用
  • 类型推断与不生效的情况

    C++ SELF
    等级 55,课时 3
    我们分析 C++ 中的模板参数推断(template argument deduction):编译器如何根据参数推断出 T,为什么同一个 T 不能同时是 int 和 double,在哪些函数签名中推断不可行(例如当 T 仅出现在返回类型时),以及参数形式 T & 与 const T & 会如何影响临时值的接收。另有对“坑人的”参数类型的单独讨论: {...}、 nullptr、字符串字面量,并给出快速诊断检查表 + 一个实用小示例“Expense Tracker”。
    可用
  • 通过简单示例讲解类模板

    C++ SELF
    等级 55,课时 4
    我们来解析什么是 C++ 类模板:模板(蓝本)与具体类型有何区别,模板的参数和实参是什么意思,编译器如何实例化 Box<int> 和 Box<std::string>,以及你对 T 隐含提出了哪些要求。在 Box<T>、 Setting<T> 和 Repository<T>(用于 TaskPilot 应用)示例中展示基本语法、const 方法的使用、操作契约以及典型错误。
    可用
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