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函数直接调用模块分区的内容,可以在主模块中导出子模块

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

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