c++语言编写1、定义一个类CalculateFun类,类中定义2个方法,实现: 1) 阶乘计算; 2)累加操作。 其中,成员函数、参数传递自行设计。
时间: 2024-09-26 16:13:16 浏览: 77
在C++中,你可以定义一个名为`CalculateFun`的类,包含两个成员函数:一个用于阶乘计算,另一个用于累加操作。以下是这个类的一个简单实现:
```cpp
class CalculateFun {
private:
// 定义一个静态变量存储计算结果,方便累加操作
static int accumulate_result = 0;
public:
// 阶乘计算方法,接受一个整数作为参数
static long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
// 累加操作方法,可以接受任意数量的整数参数,并累加到静态结果上
static void cumulative_add(int... numbers) {
// 使用C++的 variadic template 技术来处理任意数量的参数
for (int num : numbers) {
accumulate_result += num;
}
}
// 获取当前累加的结果
static int get_accumulate_result() {
return accumulate_result;
}
};
// 示例如何使用该类
int main() {
CalculateFun::factorial(5); // 计算5的阶乘
CalculateFun::cumulative_add(1, 2, 3, 4, 5); // 累加1到5
cout << "Factorial of 5: " << CalculateFun::factorial(5) << endl;
cout << "Cumulative sum: " << CalculateFun::get_accumulate_result() << endl;
return 0;
}
```
在这个例子中,`factorial`方法是一个递归函数,`cumulative_add`方法通过模板参数列表`numbers`实现了可变参数的支持,`accumulate_result`作为静态成员变量,在每次调用`cumulative_add`时会被更新。注意,`factorial`函数返回的是`long long`类型,以防因输入过大导致溢出。
阅读全文
相关推荐















