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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • Declaration vs definition: 链接错误的来源

    C++ SELF
    等级 29,课时 0
    分析为什么在多文件 C++ 项目中会出现“编译通过但链接失败”的情况:什么是 declaration(存在的承诺)与 definition(实际的实现/内存),翻译单元( translation unit)如何组织,编译器检查什么而链接器要求什么,以及如何在示例小项目 TaskBook 中把声明放到 .hpp、定义放到 .cpp 的正确做法。
    可用
  • 同一实体不能被重复定义

    C++ SELF
    等级 29,课时 1
    我们讲解在多文件 C++ 项目中的规则 ODR( One Definition Rule):什么是声明与定义的区别、为什么链接器会报 multiple definition、为什么 #pragma once 只保护同一 .cpp 内的重复包含、在 .hpp 中定义函数和全局变量有哪些危险、以及如何按“教科书”方式修复问题(在头文件中声明,在一个 .cpp 中定义)。最后 — 常见错误和对 inline 作用的谨慎引入。
    可用
  • inline‑函数与 inline‑变量

    C++ SELF
    等级 29,课时 2
    我们来分析为什么在头文件 ( .hpp) 中直接定义函数和变量常常会导致链接错误 multiple definition,以及关键字 inline 实际上做了什么(它是关于 ODR,而不是“加速”),如何正确地编写 inline‑函数和 inline‑变量(包括 inline constexpr),以及在哪些情况下 inline 会对构建和架构造成伤害。
    可用
  • static 和匿名命名空间

    C++ SELF
    等级 29,课时 3
    我们来讲讲如何在 C++ 的 .cpp 文件中“隐藏”实现名称:什么是 external/ internal linkage,文件级别的 static 和带花括号的 namespace 是如何工作的,为什么在头文件中使用 static 会在所有翻译单元中复制实体,internal linkage 如何帮助避免名字冲突,以及类似 undefined reference 的链接错误来自何处。
    可用
  • 典型的 linker 错误

    C++ SELF
    等级 29,课时 4
    我们来分析在多文件 C++ 项目中最常见的链接错误: multiple definition 和 undefined reference 有何不同,为什么 ODR 和文本性质的 # include 会导致符号“被复制”,什么时候使用 extern、 inline、 static 和 namespace,以及如何根据错误信息诊断问题(包括流程图和一个名为 MiniPlanner 的迷你项目)。
    可用
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