闭卷解释第一段C++程序与main的编译阶段、对象状态、规则和失败边界。
C++程序设计 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷解释声明、定义与翻译单元的编译阶段、对象状态、规则和失败边界。
闭卷解释预处理与头文件边界的编译阶段、对象状态、规则和失败边界。
闭卷解释编译、汇编与链接的编译阶段、对象状态、规则和失败边界。
闭卷解释名字、作用域与生存期预览的编译阶段、对象状态、规则和失败边界。
闭卷解释诊断信息与最小复现的编译阶段、对象状态、规则和失败边界。
闭卷解释多文件构建实验的编译阶段、对象状态、规则和失败边界。
规则:one definition rule;任务:写一个能编译运行的最小程序展示“声明、定义与翻译单元”,记录输入、关键对象状态、输出和编译命令,并用规则 one definition rule 解释结果;边界:不得把“声明、定义与翻译单元”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:exit status reflects main result;任务:写一个能编译运行的最小程序展示“第一段C++程序与main”,记录输入、关键对象状态、输出和编译命令,并用规则 exit status reflects main result 解释结果;边界:不得把“第一段C++程序与main”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:source→object→link→executable;任务:写一个能编译运行的最小程序展示“编译、汇编与链接”,记录输入、关键对象状态、输出和编译命令,并用规则 source→object→link→executable 解释结果;边界:不得把“编译、汇编与链接”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:include guards prevent duplicate text;任务:写一个能编译运行的最小程序展示“预处理与头文件边界”,记录输入、关键对象状态、输出和编译命令,并用规则 include guards prevent duplicate text 解释结果;边界:不得把“预处理与头文件边界”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:first diagnostic before cascade;任务:写一个能编译运行的最小程序展示“诊断信息与最小复现”,记录输入、关键对象状态、输出和编译命令,并用规则 first diagnostic before cascade 解释结果;边界:不得把“诊断信息与最小复现”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:scope≠storage duration;任务:写一个能编译运行的最小程序展示“名字、作用域与生存期预览”,记录输入、关键对象状态、输出和编译命令,并用规则 scope≠storage duration 解释结果;边界:不得把“名字、作用域与生存期预览”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:dependency graph determines rebuild;任务:写一个能编译运行的最小程序展示“多文件构建实验”,记录输入、关键对象状态、输出和编译命令,并用规则 dependency graph determines rebuild 解释结果;边界:不得把“多文件构建实验”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界