编一个程序,用成员函数重载运算符“+”和“-”,实现两个二维数组(2*3)相加和相减。要求: (1) 第1个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。 (2) 定义类array,含有数据成员var为二维数组;成员函数包括:构造函数,getarray()实现键盘输入数组值的功能,display()实现按照行列形式输出数组值的功能,两个成员运算符重载函数实现数组的相加和相减功能。
时间: 2023-05-31 17:18:33 浏览: 191
两个二维数组相加,用成员函数重载运算符“+”和“-”
5星 · 资源好评率100%
### 回答1:
这道题目要求实现一个程序,用成员函数重载运算符“+”和“-”,实现两个二维数组(2*3)相加和相减。具体要求:
(1) 第1个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
(2) 定义类array,包括数据成员var为二维数组;成员函数包括构造函数,getarray()实现键盘输入数组值的功能,display()实现按行列形式输出数组值的功能,两个成员函数重载运算符实现数组的相加和相减功能。
简单来说,就是实现一个类,包含一个二维数组成员,能够实现二维数组的输入输出和加减运算。其中一个二维数组的值是在构造函数中设置,另一个二维数组的值由键盘输入。通过重载运算符实现了加减运算的功能。
### 回答2:
本程序的需求是使用成员函数重载运算符“+”和“-”,实现两个二维数组(2*3)的加法和减法。
在此前,我们需要定义一个类array来处理这个程序,类array需要包含数据成员var为二维数组,以及构造函数、getarray()、display()和两个成员运算符重载函数addition()和substraction()。
以下是程序示例:
```
#include<iostream>
using namespace std;
class array {
private:
int var[2][3];
public:
array() {
//构造函数,将var数组初始化为0
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
var[i][j] = 0;
}
}
}
void getarray() {
//使用键盘输入获取数组的值
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cin >> var[i][j];
}
}
}
void display() {
//将数组按行列形式输出
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << var[i][j] << " ";
}
cout << endl;
}
}
array operator +(array &a) {
//定义运算符重载函数“+”用来实现数组相加
array temp;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
temp.var[i][j] = var[i][j] + a.var[i][j];
}
}
return temp;
}
array operator -(array &a) {
//定义运算符重载函数“-”用来实现数组相减
array temp;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
temp.var[i][j] = var[i][j] - a.var[i][j];
}
}
return temp;
}
};
int main() {
array a1, a2, a3, a4;
cout << "请输入第一个二维数组的值:" << endl;
a1.display();
cout << "请输入第二个二维数组的值:" << endl;
a2.getarray();
a3 = a1 + a2; //使用“+”运算符重载函数,实现数组相加
a4 = a1 - a2; //使用“-”运算符重载函数,实现数组相减
cout << "二维数组相加的结果为:" << endl;
a3.display();
cout << "二维数组相减的结果为:" << endl;
a4.display();
return 0;
}
```
本程序中,我们先定义了一个类array,并包含了4个成员函数。
在主程序中定义了四个array对象:a1和a2作为两个二维数组,并在键盘输入后分别赋值;a3和a4是使用运算符重载函数“+”和“-”分别实现两个二维数组的加法和减法,并输出结果。
简要解释下运算符重载的含义:运算符重载就是在不同的数据类型(或者同一数据类型的不同实例)之间用相同的运算符进行操作,以实现不同的功能。在本程序中,我们重载了运算符“+”和“-”,以实现数组的加法和减法。
### 回答3:
本题要求编写一个程序,利用成员函数重载运算符" "和"-",实现两个二维数组(2*3)的加法和减法操作。
首先,需要定义一个类array,其中包括数据成员var为二维数组,成员函数包括构造函数、getarray()实现键盘输入数组值的功能、display()实现按行列形式输出数组值的功能,以及两个成员运算符重载函数实现数组的相加和相减功能。
构造函数中,可以初始化第一个二维数组的值。在getarray()函数中,通过循环输入每一个数组元素的值,以此获得第二个数组的值。在display()函数中,同样通过循环输出每一个数组元素的值,以此实现按行列形式输出数组值的功能。
在成员运算符重载函数中,需要实现"+"和"-"两个操作符的重载。对于"+"操作符重载函数,通过循环遍历数组元素,将两个数组对应位上的值相加,并存储到新的数组中。对于"-"操作符重载函数,同理,不过需要进行减法操作。
最后,将输入的数组值以及加减结果通过display()函数输出到屏幕上即可。
代码实现如下:
```c++
#include<iostream>
using namespace std;
class array
{
public:
int var[2][3];//数据成员var为二维数组
array();//构造函数设置第一个二维数组的值
array getarray();//键盘输入数组值的功能
void display();//按照行列形式输出数组值的功能
array operator+(array a);//运算符“+”重载函数,实现数组的相加功能
array operator-(array a);//运算符“-”重载函数,实现数组的相减功能
};
array::array()//构造函数设置第一个二维数组的值
{
int n = 1;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
var[i][j] = n;
n++;
}
}
}
array array::getarray()//键盘输入数组值的功能
{
cout << "请输入数组的值:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cin >> var[i][j];
}
}
return *this;
}
void array::display()//按照行列形式输出数组值的功能
{
cout << "数组值为:" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << var[i][j] << " ";
}
cout << endl;
}
}
array array::operator+(array a)//运算符“+”重载函数,实现数组的相加功能
{
array add;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
add.var[i][j] = var[i][j] + a.var[i][j];
}
}
return add;
}
array array::operator-(array a)//运算符“-”重载函数,实现数组的相减功能
{
array sub;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
sub.var[i][j] = var[i][j] - a.var[i][j];
}
}
return sub;
}
int main()
{
array arr1;
arr1.display();
array arr2;
arr2.getarray();
arr2.display();
array sum = arr1 + arr2;//相加
sum.display();
array sub = arr1 - arr2;//相减
sub.display();
return 0;
}
```
阅读全文