【发布时间】:2016-04-21 16:31:01
【问题描述】:
编写一个包含整数数组作为数据成员的类 Array。该类包含以下成员函数:
- 将数组元素初始化为 -1 的构造函数。
- 输入函数用于输入数组中的值。
- 显示函数以显示数组的值。
- 重载 == 运算符来比较两个对象的值。如果两个对象的所有值都相同,则重载函数返回 1,否则返回 0。
问题:我不知道如何使用 == 运算符进行比较。
我的代码:
#include<iostream>
using namespace std;
#define SIZE 10
class array{
public:
int arr[SIZE];
public:
array(){
for (int i = 0; i < SIZE; i++){
a[i] = -1;
}
}
void input(){
- cout << "Enter values";
for (int i = 0; i < SIZE; i++){
cout << "Enter value number" << i + 1;
cin >> arr[i];
}
}
void show(){
for (int i = 0; i < SIZE; i++){
cout << arr[i];
}
}
bool operator==(array& p) const
{
bool result = true;
if (p.a != arr)
result = false;
return result;
}
};
int main(){
array arr, b, c;
a.input();
b.input();
a.show(); b.show();
return 0;
}
【问题讨论】:
-
好吧,看来它归结为比较数组。课外你会怎么做?
-
除非
this == &p是true,否则您的运算符实现将始终返回false。您可能想一一比较数组的元素。顺便说一句:使用using namespace std;并使用名为array的类可能会给您带来麻烦。 -
@Drop 使用 for 循环。
标签: c++ arrays operator-overloading