定义一个Array类模板,其中的数据成员是一个具有5个元素的一维数组,类中包含构造函数和一个找最大值的函数。通过这个类模板可以分别查找int、double、string类型一维数组中的最大值。要求写出主函数,测试这个类模板的正确性。
下面是一个Array类模板及其测试代码的示例:
#include<iostream>
using namespace std;
template <typename T>
class Array {
private:
T data[5];
public:
Array(T arr[]) {
for (int i = 0; i < 5; i++) {
data[i] = arr[i];
}
}
T maxval() {
T maxv = data[0];
for (int i = 1; i < 5; i++) {
if (data[i] > maxv) {
maxv = data[i];
}
}
return maxv;
}
};
int main() {
int arrInt[] = { 3, 2, 5, 4, 1 };
double arrDouble[] = { 4.5, 3.2, 7.8, 1.2, 5.9 };
string arrString[] = { "apple", "banana", "orange", "lemon", "watermelon" };
Array<int> arr1(arrInt);
Array<double> arr2(arrDouble);
Array<string> arr3(arrString);
cout << "Max value of int array: " << arr1.maxval() << endl;
cout << "Max value of double array: " << arr2.maxval() << endl;
cout << "Max value of string array: " << arr3.maxval() << endl;
return 0;
}
在上述代码中,我们定义了一个名为Array的类模板,用于包装一个具有5个元素的一维数组。该类模板包含了一个构造函数,可以接受任何类型的一维数组,并将其存储在data数组中。此外,该类还包含了一个maxval函数,用于查找存储在data数组中的相应类型数据的最大值。
在main函数中,我们定义了三个不同类型的一维数组,并使用Array模板创建了三个Array对象arr1、arr2和arr3。然后,我们分别调用这些对象的maxval函数,以获得int、double和string数组中的最大值,并将结果打印在屏幕上。
注意,在测试这个Array类模板的正确性时,需要传递每个类型的正确数组到构造函数中,并检查maxval函数返回的结果是否与预期相符。
不知道你这个问题是否已经解决, 如果还没有解决的话: