建立一个用来实现求3个数和的类模板,将成员函数定义在类模板的内部,并写出调用此类模板的完整程序
时间: 2024-03-18 10:38:36 浏览: 29
好的,可以的,下面是对应的代码示例:
```cpp
#include <iostream>
template<class T>
class SumOfThreeNumbers {
public:
SumOfThreeNumbers(T a, T b, T c) : m_a(a), m_b(b), m_c(c) {}
T sum() const {
return m_a + m_b + m_c;
}
private:
T m_a;
T m_b;
T m_c;
};
int main() {
SumOfThreeNumbers<int> sum1(1, 2, 3);
std::cout << "The sum of 1, 2, 3 is " << sum1.sum() << std::endl;
SumOfThreeNumbers<double> sum2(3.14, 2.71, 1.41);
std::cout << "The sum of 3.14, 2.71, 1.41 is " << sum2.sum() << std::endl;
return 0;
}
```
这个类模板可以接受任何类型的参数,通过构造函数传入3个数,然后通过成员函数 `sum()` 计算它们的和。在 `main()` 函数中,我们分别测试了使用 `int` 和 `double` 作为类型参数的情况。
相关问题
建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
好的,下面是代码实现:
```cpp
#include <iostream>
using namespace std;
template <typename T>
class SumOfThree {
private:
T a, b, c;
public:
SumOfThree(T a, T b, T c) : a(a), b(b), c(c) {}
T sum() {
return a + b + c;
}
};
int main() {
SumOfThree<int> intSum(1, 2, 3);
cout << "Sum of three integers: " << intSum.sum() << endl;
SumOfThree<double> doubleSum(1.5, 2.5, 3.5);
cout << "Sum of three doubles: " << doubleSum.sum() << endl;
return 0;
}
```
这个程序定义了一个类模板 `SumOfThree`,它有三个模板参数 `typename T`,表示数据类型。类模板内部有一个成员函数 `sum()`,用于求三个数据的和。
在 `main()` 函数中,我们分别创建了两个类模板的实例,一个是 `int` 类型的数据,一个是 `double` 类型的数据,然后分别调用 `sum()` 函数求和并输出结果。
注意,这里我们使用了类模板的构造函数来初始化三个数据成员 `a`、`b`、`c`。这样可以方便地创建类模板的实例,并且保证了数据类型的一致性。
建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序.
好的,下面是代码实现:
```c++
#include <iostream>
template <typename T>
class SumThreeNumbers {
public:
SumThreeNumbers(T num1, T num2, T num3) {
this->num1 = num1;
this->num2 = num2;
this->num3 = num3;
}
T sum() const {
return num1 + num2 + num3;
}
private:
T num1;
T num2;
T num3;
};
int main() {
SumThreeNumbers<int> sum_int(1, 2, 3);
std::cout << "The sum of three int numbers is: " << sum_int.sum() << std::endl;
SumThreeNumbers<double> sum_double(1.2, 3.4, 5.6);
std::cout << "The sum of three double numbers is: " << sum_double.sum() << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个类模板 `SumThreeNumbers`,它有一个构造函数和一个成员函数 `sum`。构造函数接收三个类型为 `T` 的参数,分别初始化了三个私有成员变量 `num1`、`num2` 和 `num3`,成员函数 `sum` 返回这三个数的和。在 `main` 函数中,我们分别创建了两个类模板对象 `sum_int` 和 `sum_double`,分别传入了三个 `int` 和三个 `double` 类型的参数,并调用了它们的 `sum` 函数,输出了结果。
如果你想求其他类型的数的和,只需要将 `int` 或 `double` 替换成相应的类型即可。