C++20------Modules (VS2019测试)

转载:C++20 Modules - 知乎 (zhihu.com)

首先了解为什么引入modules的功能。

这和编译阶段的预处理功能类似,

采用VS2019来测试C++20功能

首先配置C++20的测试环境。

1.选择项目-》属性-》语言-》C++语言标准-》c++latest

测试模块功能

1.添加模块文件,模块文件的后缀是.ixx

2.测试功能

在模块文件中最好不要#include ,因为这样就违背模块设计的初衷。

重点:

1.模块命名:export module 名字,代表这个是主模块位置

2.模块中的内容必须以export导出,外界其他才能使用

普通模块

Module.ixx

export module Module;
import ;
using namespace std;
export int GetNum(int num)
{return num * 10;
}export void GetName()
{cout << "be stronger" << endl;
}export class Test
{
public:Test() :num(10) {};void SetNum(int data){num = data;}int GetNum();
private:int num;
};int Test::GetNum()
{return num;
}

 

以上内容的export方法可以修改为:

export module Module;
import ;
using namespace std;export{int GetNum(int num){return num * 10;}void GetName(){cout << "be stronger" << endl;}class Test{public:Test() :num(10) {};void SetNum(int data){num = data;}int GetNum();private:int num;}; int Test::GetNum(){return num;};
}

注意一个ixx文件只能存放一个模块

 

模块分区

模块需要添加头文件

export module [模块名]:[分区名]

 主模块调用分区模块内容

 main函数调用

 

如果想main函数直接调用模块分区的内容,可以在主模块中导出子模块

 注意需要在子模块中把函数导出

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部