使用Vs2019 体验C++20
本次试验使用的是Visual Studio 2019 16.10.0 版本。为了体验C++20 的内容首先将C++语言标准设置成“预览 - 最新 C++ 工作草案中的功能 (/std:c++latest)”,然后新建N个ixx文件。
根据微软博客module (ixx)中的代码如下`module;
export module mymodel;
export int Add(int a, int b) {
return a + b;
};
`
我一共新建了三个modules 分别如下:
module;
export module mymodel;export int Add(int a, int b) {return a + b;
};
module;export module multi;export int Multi(int a,int b)
{return a * b;
};export int Add(int a, int b) {return a*a + b*b;
};
export module myop;export class myop
{
public:myop() :m_abc(0){}~myop(){}int add() { return ++m_abc; }
private:int m_abc;
};
需要注意的是我特地在Multi 模块中增加了一个Add操作用来实验当方法重名时C++是如何选择使用的方法的。下面展示调用的cpp文件
import mymodel;
import multi;
import myop;
#include
int main()
{myop mabc;std::cout << "mode test : " << mabc.add() << std::endl;std::cout << "mode test : " << Multi(6,9) << std::endl;std::cout << "mode test : " << Add(6, 9) << std::endl;return 0;
};
编译运行后打印结果如下图所示

并没什么意外,C++调用的Add是mymodel 中的Add。调换import的次序后
import multi;
import mymodel;
import myop;
#include
int main()
{myop mabc;std::cout << "mode test : " << mabc.add() << std::endl;std::cout << "mode test : " << Multi(6,9) << std::endl;std::cout << "mode test : " << Add(6, 9) << std::endl;return 0;
};
结果变成了平方和的形式,也就是说当有重名方法时,import调用的是第一个方法

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