⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

C++20 模块:现代化组件系统

学习使用import和export关键字组织代码,替代传统头文件。 · 难度:入门 · +15XP

模块概述

C++20模块是一种新的代码组织方式,旨在替代头文件。模块提供更好的封装性、更快的编译速度和更清晰的依赖关系。

基本语法

模块由模块接口单元模块实现单元组成。

// math.ixx (模块接口单元)
export module math;

export int add(int a, int b) { return a + b; }

export int multiply(int a, int b); // 声明

// math.cpp (模块实现单元) module math;

int multiply(int a, int b) { return a * b; }

// main.cpp export import math; // 或 import math;

int main() { std::cout << add(2, 3) << ' '; std::cout << multiply(4, 5) << ' '; }

模块分区

模块可以分成多个分区,便于管理大型项目。

// math.ixx
export module math;
export import :arithmetic;  // 导入分区

// arithmetic.ixx (分区) export module math:arithmetic; export int add(int a, int b);

模块 vs. 头文件

特性头文件模块
编译速度慢(重复解析)快(编译一次)
封装差(宏泄露、私有细节暴露)好(显式导出)
依赖管理手动顺序自动顺序

注意事项

练习提示

创建一个简单的数学模块,导出addsubtractmultiplydivide函数。然后在另一个文件中导入并使用。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 105 篇
0 完成
🔥 0