news 2026/8/1 5:44:28

2601C++,模块基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2601C++,模块基础

模块的应用

模块机制的应用一般有以下几部分:
模块单元接口定义具体实现
模块的接口负责定义相关使用约定和条件;实现提供具体的应用逻辑.接口抽象清除对具体应用的依赖,这也符合设计原则上的依赖抽象,方便扩展和测试.

利用导出定义规则限制

模块最主要功能就是要和其它的模块协作,所以可导出来确定相关导出的内容,用来向其它模块或应用提供接口,控制内外的边界.
每个模块只有能一个默认导出,另外,导出的应用有着具体的语义规则:模块静态绑定的且要保持全局引用一致性;

不可导出模块域内的临时变量;支持重导出(reexport),目的是聚集接口.
说明,所谓重导出,就是在导出模块中可导出其它模块.类似下面:

//已存在`A,B`两个模块,在`C`模块中导出它们exportmoduleC;exportmoduleA;exportmoduleB;//有选择的导出即分块导出exportimport:A1 from A;//设置A模块中导出了`A1`模块exportvoidtest();//C模块中`自定义`的导出接口

文件命名和模块管理

为了保持可维护性和易用,建议使用一些常见的风格管理,如Google,Linux等等,其后缀推荐使用.ccpm或.ixx.

没有强制,只有适用.如,以点分隔相关模块就是一个非常容易为大家理解和接受的方法即类似"export math.core.matrix".
同样,模块管理中,模块的文件最好与实际的定义一一保持对应(一一映射).该如果有Go神算等开发经验的就非常好理解了.

全局模块片段的应用

全局模块片段c++模块用来兼容传统头文件的一个机制,它不属于模块相关说明.一般在接口单元"module;"声明后到模块定义"export module myself;前的部分.如下例:

module;#include<vector>exportmoduledemo;

全局模块片段还可用来隔绝预处理器的定义,处理宏定义等.

私有模块片段的应用

有全局模块片段就会有私有的.在C++中一般是如下定义:

module;#include<iostream>exportmoduledemo;module:private;voidtestPrivate(){std::cout<<"private module test!"<<std::endl;}

注意,必须在公有及导出模块模块后定义私有模块,否则会报私有编译错误.如:

例程

如上,下面给出示例:

//`exportdemo.cppm`module;#include<vector>#include<iostream>exportmoduledemo;importstd;namespacedemo{exportintAdd(int,int);exportclassexportDemo{public:exportDemo();public:voiddisplay();std::vector<int>vec_;};}module:private;voidtestPrivate(){std::cout<<"private module test!"<<std::endl;}//`exportdemo.cpp`moduledemo;importstd;namespacedemo{intAdd(inta,intb){returna+b;}exportDemo::exportDemo(){}voidexportDemo::display(){vec_.reserve(10);testPrivate();std::cout<<"this is demo module!"<<std::endl;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 10:18:56

市场快评 · 今日复盘20260111

2026年1月11日A股市场复盘日志 参考数据&#xff1a;同花顺数据统计 一、复盘上涨家数 今日市场赚钱效应显著&#xff0c;呈现全面普涨格局。全市场共计3920只个股上涨&#xff0c;仅1349只个股下跌&#xff0c;上涨家数占比超7成。从指数共振表现来看&#xff0c;不仅权重板…

作者头像 李华
网站建设 2026/7/31 10:18:55

大数据安全运维:日常监控与应急响应策略

大数据安全运维&#xff1a;从日常监控到应急响应的全流程实战指南 摘要/引言&#xff1a;凌晨3点的告警声&#xff0c;暴露了多少大数据安全的“隐形漏洞”&#xff1f; 2023年双11前一周&#xff0c;某头部电商的运维工程师小李在凌晨3点被告警声惊醒——监控系统显示&#x…

作者头像 李华
网站建设 2026/7/31 10:19:00

Spec-Driven Development (SDD) 框架与开源 AI 智能体-意图的进化

当"氛围编码"失效&#xff1a;AI原生开发工具正在重塑软件工程范式从即兴提示到规范驱动&#xff0c;开源生态如何定义下一代开发流程过去一年里&#xff0c;"Vibe Coding"&#xff08;氛围编码&#xff09;成为AI编程领域最时髦的术语。开发者们享受着与A…

作者头像 李华
网站建设 2026/7/31 10:06:10

艺术疗愈促进非语言沟通的系统性解析——从神经生物学到现象学:解锁无言心声的深度路径

摘要: 在人类复杂多维的沟通系统中&#xff0c;语言常被视为桥梁&#xff0c;但深层的情感与创伤&#xff0c;却往往在‘无可言说’的沉默中挣扎。本文解析将带您跨越语言的藩篱&#xff0c;探究艺术疗愈如何作为一种高级的系统级干预&#xff0c;激活被传统沟通模式所压抑的非…

作者头像 李华
网站建设 2026/7/31 10:06:09

写真提示词完全指南:从棚拍到情绪大片,AI帮你一键生成

大家好&#xff0c;我是AI培训韩老师&#xff01;很多人问我&#xff0c;现在还需要去影楼拍写真&#xff1f;no,no,no!本文将为你系统梳理各类写真提示词的写法&#xff0c;并提供可直接套用的范例。无论你是想创作时尚大片、电影感叙事&#xff0c;还是特定主题写真&#xff…

作者头像 李华
网站建设 2026/7/31 10:06:12

吐血推荐10个AI论文软件,助你轻松搞定本科生毕业论文!

吐血推荐10个AI论文软件&#xff0c;助你轻松搞定本科生毕业论文&#xff01; AI 工具让论文写作不再难 对于很多本科生来说&#xff0c;撰写毕业论文是一次既紧张又充满挑战的经历。从选题到资料收集&#xff0c;再到结构搭建和内容撰写&#xff0c;每一个环节都可能让人感到…

作者头像 李华