模块(Module)
C++ 中的模块主要由以下几个组成部分: C++20支持
1. 模块声明
模块通过 module
关键字进行声明。例如:
2. 导出符号
使用 export
关键字将模块中的函数、类等符号导出,以便其他模块或翻译单元可以使用。例如:
3. 模块接口
模块的接口部分可以放在单独的文件中,通常使用 .cppm
或 .ixx
扩展名。接口定义了模块的公共 API。
4. 模块实现
模块的实现部分可以放在与接口不同的文件中,通常使用 .cpp
扩展名。实现部分定义了具体的功能。
5. 导入模块
在其他文件中使用 import
语句导入模块,从而访问其导出的符号。例如:
6. 模块包
编译器将模块的内容编译成一个模块包(例如 .cppm
文件),这个包包含所有导出的符号。使用时,编译器只需要编译一次模块包即可。
7. 命名空间
模块内部可以使用命名空间来进一步组织代码,从而避免命名冲突。例如:
使用示例
以下是一个简单的 C++ 模块示例:
my_math.cppm(模块接口和实现):
main.cpp(使用模块):
总结
模块在 C++ 中提供了一种更高效的组织代码的方式,同时改善了编译效率和代码封装。
Last updated