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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • struct 作为数据模型

    C++ SELF
    等级 19,课时 0
    我们讲解在 C++ 中为何将 struct 用作数据模型:如何将同一实体的字段用共同的类型绑定、通过 . 访问字段、使用聚合初始化 { ... }(以及字段顺序为何重要)、在声明中设置默认值(default member initializer)以及如何通过 const T & 将模型传入函数。最后我们会组装一个基于 std::vector < Task > 的 TaskTracker 简易雏形,并讨论典型错误。
    可用
  • 封闭值集合:enum 与 enum class

    C++ SELF
    等级 19,课时 1
    我们来分析为什么用 bool、 int 或 std::string 来存储状态是个糟糕的主意,以及 enum class 如何解决“封闭值集合”问题。以 Task 模型为例添加状态和优先级,比较 enum 与 enum class,讨论 underlying type(例如 std::uint8_t)、通过 std::to_underlying 获取数值代码,以及常见错误和危险的转换例如 static_cast。
    可用
  • switch 在 C++ 中:按值分支、break、fallthrough

    C++ SELF
    等级 19,课时 2
    解析 C++ 中的分支语句 switch:它与 if/ else 链有何不同, case 和 default 标签如何工作,为什么很容易忘记写 break,以及什么是 fallthrough(向下“落入”下一个 case)。我们还会单独讨论限制( switch 作用于整数/枚举类型)、 case 中的编译期常量、属性 [[ fallthrough ]],并为小项目 TaskTracker 基于 std::vector 和 enum class 搭建菜单骨架。
    可用
  • 模型集合:std::vector<Model>

    C++ SELF
    等级 19,课时 3
    解析如何将单个模型变成 C++ 中可管理的集合:以 std :: vector < Task > 作为数据基础,并在其周围构建 CRUD 操作。实践中我们编写用于添加( push_back())、读取(打印与按 id 查找)、更新(更改 status、重命名)和删除( erase())的函数,然后将所有操作连接为一个简单的 CLI 输入循环。单独讨论典型错误: signed/ unsigned、在 size_t 中使用 -1、删除后元素移动以及将 id 与索引混淆。
    可用
  • 模型打印 — 统一的输出格式

    C++ SELF
    等级 19,课时 4
    解析如何在 C++ 中集中处理模型的打印,使得同一个对象(例如, Task)在所有场景下都以相同的方式输出。我们约定使用表格格式,通过 ToString ( Status ) 将状态转换为字符串,实现打印行的函数 PrintTaskRow 和打印列表的函数 PrintTasks,并讨论流格式化的陷阱(操纵符 std::left/ std::right 和 std::setw)。
    可用
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