编写c++程序,用函数重载,实现两个不同类型数据的相加,包括int型,float型,double型,一维和二维数组;编写主函数对重载函数进行测试 (考虑是否可以同时用函数模板)
时间: 2024-06-13 18:08:33 浏览: 109
以下是实现两个不同类型数据的相加的C++程序,包括int型,float型,double型,一维和二维数组,并且使用了函数重载和函数模板:
```c++
#include<iostream>
using namespace std;
// 一维数组相加
int add(int arr1[], int arr2[], int len) {
int res[len];
for (int i = 0; i < len; i++) {
res[i] = arr1[i] + arr2[i];
}
cout << "一维数组相加结果:";
for (int i = 0; i < len; i++) {
cout << res[i] << " ";
}
cout << endl;
return 0;
}
// 二维数组相加
int add(int arr1[][3], int arr2[][3], int row, int col) {
int res[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
res[i][j] = arr1[i][j] + arr2[i][j];
}
}
cout << "二维数组相加结果:" << endl;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << res[i][j] << " "; }
cout << endl;
}
return 0;
}
// 不同类型数据相加
template <typename T1, typename T2>
T1 add(T1 a, T2 b) {
return a + b;
}
int main() {
int arr1[] = {1, 2, 3};
int arr2[] = {4, 5, 6};
add(arr1, arr2, 3);
int arr3[][3] = {{1, 2, 3}, {4, 5, 6}};
int arr4[][3] = {{7, 8, 9}, {10, 11, 12}};
add(arr3, arr4, 2, 3);
int a = 1;
float b = 2.5;
double c = 3.7;
cout << "不同类型数据相加结果:" << endl;
cout << add(a, b) << endl;
cout << add(a, c) << endl;
cout << add(b, c) << endl;
return 0;
}
```
阅读全文