2. 建立一个用来实现求3个数和的类模板,并写出调用此类模板的完整程序。 (1) 将成员函数定义在类模板的内部; (2) 在类模板外定义各成员函数。
时间: 2024-02-17 18:03:02 浏览: 94
好的,以下是一个用于实现求三个数和的类模板的完整程序,包括在类模板内部定义成员函数和在类模板外部定义成员函数两种方式:
```c++
#include <iostream>
using namespace std;
// 类模板定义
template <typename T>
class SumOfThree {
private:
T a, b, c;
public:
SumOfThree(T x, T y, T z) {
a = x;
b = y;
c = z;
}
T sum() {
return a + b + c;
}
};
// 在类模板外定义成员函数
// template <typename T>
// SumOfThree<T>::SumOfThree(T x, T y, T z) {
// a = x;
// b = y;
// c = z;
// }
// template <typename T>
// T SumOfThree<T>::sum() {
// return a + b + c;
// }
int main() {
SumOfThree<int> obj1(1, 2, 3);
SumOfThree<float> obj2(1.5, 2.5, 3.5);
SumOfThree<double> obj3(1.0, 2.0, 3.0);
cout << "Sum of three integers: " << obj1.sum() << endl;
cout << "Sum of three floats: " << obj2.sum() << endl;
cout << "Sum of three doubles: " << obj3.sum() << endl;
return 0;
}
```
输出结果为:
```
Sum of three integers: 6
Sum of three floats: 7.5
Sum of three doubles: 6
```
其中,类模板定义了一个`SumOfThree`类,它有三个私有成员变量`a`、`b`和`c`,分别表示三个数。构造函数用于初始化这三个成员变量,而`sum()`函数则用于计算三个数的和并返回结果。
在`main()`函数中,我们分别创建了三个`SumOfThree`对象,分别用于计算三个整数、三个浮点数和三个双精度浮点数的和。最后将计算结果输出到屏幕上。
阅读全文