类fact中包含数据成员类型有整型数据n,m,其中m的值为n的阶乘;公有成员函数包括:1)包含默认参数的构造函数,n的默认值为0;2)将n值加1的函数;3)计算m值的函数4)对<<运算符进行友元重载,输出格式为“3!=6”。要求编写main函数使用fact类的对象输出1-20的阶乘
时间: 2023-06-08 08:05:49 浏览: 41
好的,你的问题已经记录下来了。根据你的要求,我给你提供以下的代码:
```
#include <iostream>
using namespace std;
class fact {
private:
int n;
int m;
public:
fact(int n = 0): n(n) {
m = calculate_m();
}
void increment_n() {
n++;
m = calculate_m();
}
int calculate_m() const {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
friend ostream& operator<<(ostream&, const fact&);
};
ostream& operator<<(ostream& os, const fact& f) {
os << f.n << "!=" << f.m;
return os;
}
int main() {
for (int i = 1; i <= 20; i++) {
fact f(i);
cout << f << endl;
}
return 0;
}
```
这是一个简单的类fact的实现,其中包含指定的数据成员和公有成员函数。在main函数中,我们可以很容易地使用fact类的对象输出1-20的阶乘。当然,你也可以根据需要做出任何修改。