#!/usr/bin/env python3 # -*- coding: utf-8 -*- # ============================================================================== # file_name_map.py — 每个 (pageId, section_title) → 英文源文件名词根 # # 规则(按用户要求): # * 源文件名用英文,与章节/小节名称匹配(按章节号或语义命名)。 # * 同一小节内有多个源文件时,追加语义后缀区分。 # * 文件名仅含 [a-z0-9_],蛇形命名。 # # 本表为人工映射,是 gen_part1.py / gen_part3.py 的输入。 # 键 = (pageId, section_title);值 = 英文词根(不含扩展名/前缀)。 # ============================================================================== FILE_NAME_MAP = { # ---- ch02 intro (58954438) ---- ("58954438", "2.1.1 c++ hello world"): "hello_world", # ---- ch03 C++对C的扩展 (58954439) ---- ("58954439", "3.1 ::作用域运算符"): "scope_resolution_operator", ("58954439", "3.2.2命名空间使用语法"): "namespace_syntax", ("58954439", "3.2.3 using声明"): "using_declaration", ("58954439", "3.2.4 using编译指令"): "using_directive", ("58954439", "3.3 全局变量检测增强"): "global_variable_detection", ("58954439", "3.4 C++中所有的变量和函数都必须有类型"): "strict_function_signatures", ("58954439", "3.5 更严格的类型转换"): "stricter_type_casting", ("58954439", "3.6 struct类型加强"): "struct_enhancement", ("58954439", "3.7 \u201c新增\u201dbool类型关键字"): "bool_keyword", ("58954439", "3.8 三目运算符功能增强"): "ternary_operator", ("58954439", "3.8.2.3 C/C++中const异同总结"): "const_diff_summary", ("58954439", "3.9.3 尽量以const替换#define"): "const_vs_define", ("58954439", "3.10.1 引用基本用法"): "reference_basics", ("58954439", "3.10.2 函数中的引用"): "reference_in_function", ("58954439", "3.10.3 引用的本质"): "reference_essence", ("58954439", "3.10.4 指针引用"): "pointer_reference", ("58954439", "3.10.5 常量引用"): "const_reference", ("58954439", "3.11.2 预处理宏的缺陷"): "macro_pitfalls", ("58954439", "3.11.3.2 类内部的内联函数"): "inline_in_class", ("58954439", "3.12 函数的默认参数"): "default_arguments", ("58954439", "3.13 函数的占位参数"): "placeholder_parameters", ("58954439", "3.14.2.1 函数重载基本语法"): "function_overload_basics", ("58954439", "3.14.2.2 函数重载实现原理"): "function_overload_mechanism", ("58954439", "3.14.3 extern \u201cC\u201d浅析"): "extern_c", # ---- ch04 class_object ---- # 01 基本概念 (58954448) ("58954448", "4.1.2 类的封装"): "class_encapsulation", ("58954448", "4.1.3 将成员变量设置为private"): "private_members", # 02 面向对象案例 (58954449) ("58954449", "4.2.1 设计立方体类"): "cube_class_design", ("58954449", "4.2.2 点和圆的关系"): "point_and_circle", # 03 构造和析构 (58954451) ("58954451", "4.3.2 构造函数和析构函数"): "ctor_and_dtor", ("58954451", "4.3.3 构造函数的分类及调用"): "ctor_classification", ("58954451", "4.3.4 拷贝构造函数的调用时机"): "copy_ctor_timing", ("58954451", "4.3.6 深拷贝和浅拷贝"): "deep_vs_shallow_copy", ("58954451", "4.3.7.1 初始化列表"): "initializer_list", ("58954451", "4.3.7.2 类对象作为成员"): "class_object_member", ("58954451", "4.3.8 explicit关键字"): "explicit_keyword", ("58954451", "4.3.9.2 C动态分配内存方法"): "c_dynamic_alloc", ("58954451", "4.3.9.3 new operator"): "new_operator", ("58954451", "4.3.9.4 delete operator"): "delete_operator", ("58954451", "4.3.9.5 用于数组的new和delete"): "new_delete_array", ("58954451", "4.3.9.6 delete void*可能会出错"): "delete_void_ptr", ("58954451", "4.3.10.1 静态成员变量"): "static_member_variable", ("58954451", "4.3.10.2 静态成员函数"): "static_member_function", ("58954451", "4.3.10.3 const静态成员属性"): "const_static_member", ("58954451", "4.3.10.4 静态成员实现单例模式"): "static_singleton", # 04 对象模型 (58954456) ("58954456", "4.4.1 成员变量和函数的存储"): "member_storage", ("58954456", "4.4.2.2 this指针的使用"): "this_pointer", ("58954456", "4.4.2.3 const修饰成员函数"): "const_member_function", ("58954456", "4.4.2.4 const修饰对象(常对象)"): "const_object", # 05 友元 (58954457) ("58954457", "4.5.1 友元语法"): "friend_syntax", # 06 运算符重载 (58954458) ("58954458", "4.6.2 运算符重载碰上友元函数"): "overload_with_friend", ("58954458", "4.6.4 自增自减(++/--)运算符重载"): "overload_increment_decrement", ("58954458", "4.6.5 指针运算符(*、->)重载"): "overload_pointer_operator", ("58954458", "4.6.6 赋值(=)运算符重载"): "overload_assignment", ("58954458", "4.6.7 等于和不等于(==、!=)运算符重载"): "overload_equality", ("58954458", "4.6.8 函数调用符号()重载"): "overload_function_call", # 07 继承和派生 (58954461) ("58954461", "4.7.1.1 为什么需要继承"): "why_inheritance", ("58954461", "4.7.2 派生类访问控制"): "derived_access_control", ("58954461", "4.7.3.1 继承中的对象模型"): "inheritance_object_model", ("58954461", "4.7.3.2 对象构造和析构的调用原则"): "inheritance_ctor_dtor_order", ("58954461", "4.7.3 继承中同名成员的处理方法"): "same_name_members", ("58954461", "4.7.5 继承中的静态成员特性"): "static_in_inheritance", ("58954461", "4.7.6.1 多继承概念"): "multiple_inheritance_concept", ("58954461", "4.7.6.2 菱形继承和虚继承"): "diamond_virtual_inheritance", ("58954461", "4.7.6.3 虚继承实现原理"): "virtual_inheritance_mechanism", # 08 多态 (58954469) ("58954469", "4.8.1 多态基本概念"): "polymorphism_basics", ("58954469", "4.8.2.1 问题抛出"): "upcast_problem", ("58954469", "4.8.2.1 问题解决方案(虚函数,vitual function)"): "virtual_function_solution", ("58954469", "4.8.3 C++如何实现动态绑定"): "dynamic_binding", ("58954469", "4.8.6.1 虚析构函数作用"): "virtual_dtor_purpose", ("58954469", "4.8.6.2 纯虚析构函数"): "pure_virtual_dtor", ("58954469", "4.8.7 重写 重载 重定义"): "override_overload_redefine", # ---- ch05 模板 (58954472) ---- ("58954472", "5.2 函数模板"): "function_template", ("58954472", "5.3 函数模板和普通函数区别"): "template_vs_function", ("58954472", "5.4 函数模板和普通函数在一起调用规则"): "template_call_rules", ("58954472", "5.6模板的局限性"): "template_limitations", ("58954472", "5.7.1 类模板基本概念"): "class_template_basics", ("58954472", "5.7.2 类模板做函数参数"): "class_template_as_param", ("58954472", "5.7.3 类模板派生普通类"): "class_template_derives_class", ("58954472", "5.7.4 类模板派生类模板"): "class_template_derives_template", ("58954472", "5.7.5 类模板类内实现"): "class_template_in_class_impl", ("58954472", "5.7.6 类模板类外实现"): "class_template_out_of_class_impl", ("58954472", "5.7.7 模板类碰到友元函数"): "class_template_friend", ("58954472", "5.8 类模板的应用"): "class_template_application", # ---- ch06 类型转换 (58954473) ---- ("58954473", "6.1 静态转换(static_cast)"): "static_cast_demo", ("58954473", "2.2 动态转换(dynamic_cast)"): "dynamic_cast_demo", ("58954473", "2.3 常量转换(const_cast)"): "const_cast_demo", # ---- ch07 异常 (58954474) ---- ("58954474", "7.1 异常基本概念"): "exception_basics", ("58954474", "7.2.1 异常基本语法"): "exception_syntax", ("58954474", "7.2.2 异常严格类型匹配"): "exception_type_matching", ("58954474", "7.2.3 栈解旋(unwinding)"): "stack_unwinding", ("58954474", "7.2.4 异常接口声明"): "exception_specification", ("58954474", "7.2.5 异常变量生命周期"): "exception_variable_lifetime", ("58954474", "7.2.6 异常的多态使用"): "exception_polymorphism", ("58954474", "7.3.1 标准库介绍"): "std_exception_library", ("58954474", "7.3.2 编写自己的异常类"): "custom_exception_class", # ---- ch08 IO流 (58954476) ---- ("58954476", "8.3 标准输入流"): "standard_input_stream", ("58954476", "8.4.1 字符输出"): "character_output", ("58954476", "8.4.2 格式化输出"): "formatted_output", ("58954476", "8.4.4 C++对ASCII文件的读写操作"): "ascii_file_io", ("58954476", "8.4.5 C++对二进制文件的读写操作"): "binary_file_io", # ---- ch09 STL ---- # 02 三大组件 (58954487) ("58954487", "2.4 案例"): "stl_components_case", # 03 常用容器 (58954488) ("58954488", "3.1.2.9 string和c-style字符串转换"): "string_and_c_string", ("58954488", "3.2.2 vector迭代器"): "vector_iterator", ("58954488", "3.2.5.1巧用swap,收缩内存空间"): "vector_swap_shrink", ("58954488", "3.2.5.2 reserve预留空间"): "vector_reserve", ("58954488", "3.6.3 list容器的数据结构"): "list_data_structure", ("58954488", "3.7.2.5 set查找操作"): "set_find_operations", ("58954488", "3.8.3 multimap案例"): "multimap_case", # 04 常用算法 (58954498) ("58954498", "4.1 函数对象"): "function_object", ("58954498", "4.2 谓词"): "predicate", ("58954498", "4.3 内建函数对象"): "builtin_function_object", ("58954498", "4.3 常用遍历算法"): "traversal_algorithms", # ====================================================================== # Part 3 — Qt 桌面应用开发 (p03) # ====================================================================== # ---- ch02 创建Qt项目 (58954515) ---- ("58954515", "一个最简单的Qt应用程序"): "minimal_qt_app", # ---- ch03 第一个Qt小程序 (58954525) ---- ("58954525", "3.1 按钮的创建"): "button_creation", ("58954525", "3.2 对象模型(对象树)"): "object_tree_model", # ---- ch04 信号和槽机制 (58954527) ---- ("58954527", "4.1 系统自带的信号和槽"): "builtin_signal_slot", ("58954527", "4.2 自定义信号和槽"): "custom_signal_slot", ("58954527", "4.4 Qt4版本的信号槽写法"): "qt4_signal_slot_style", ("58954527", "4.5 Lambda表达式"): "lambda_signal_slot", # ---- ch05 QMainWindow (58954529) ---- ("58954529", "5.1 菜单栏"): "menubar", ("58954529", "5.3 状态栏"): "statusbar", ("58954529", "5.4 铆接部件"): "dock_widget", ("58954529", "5.5 核心部件(中心部件)"): "central_widget", ("58954529", "5.6 资源文件"): "resource_file", # ---- ch06 对话框QDialog (58954535) ---- ("58954535", "模态对话框"): "modal_dialog", ("58954535", "非模态对话框"): "modeless_dialog", ("58954535", "6.4 消息对话框"): "message_box", ("58954535", "6.5 标准文件对话框"): "file_dialog", # ---- ch08 常用控件 (58954540) ---- ("58954540", "显示文字 (普通文本、html)"): "label_text", ("58954540", "显示图片"): "label_pixmap", ("58954540", "显示动画"): "label_movie", ("58954540", "设置/获取内容"): "lineedit_content", ("58954540", "设置显示模式"): "lineedit_echo_mode", ("58954540", "8.4 自定义控件"): "custom_widget", # ---- ch09 Qt消息机制和事件 (58954546) ---- ("58954546", "9.1 事件"): "mouse_event", ("58954546", "9.2 event()"): "event_override", ("58954546", "9.3 事件过滤器"): "event_filter", ("58954546", "9.4 总结"): "event_summary", # ---- ch10 绘图和绘图设备 (58954548) ---- ("58954548", "10.1 QPainter"): "qpainter_basic", ("58954548", "10.2.1 QPixmap、QBitmap、QImage"): "paint_device_pixmaps", ("58954548", "10.2.2 QPicture"): "qpicture_io", # ---- ch11 文件系统 (58954552) ---- ("58954552", "11.1 基本文件操作"): "qfile_basic", ("58954552", "11.2 二进制文件读写"): "qdatastream_io", ("58954552", "11.3 文本文件读写"): "qtextstream_io", } def stem_for(pid, section_title): """Return the english filename stem for a (pageId, section_title), or None.""" return FILE_NAME_MAP.get((pid, section_title))