Напишите массив классов, содержащий массив целых чисел в качестве элемента данных. Класс содержит следующие функции-члены:Как использовать == для сравнения элементов массива
- Конструктор, который инициализирует элементы массива до -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;
}
Ну, похоже, что это сводится к сравнению массивов. Как бы вы сделали это за пределами класса? – Drop
Если 'this == & p' является' истинным', ваша реализация оператора всегда будет возвращать 'false'. Вероятно, вы захотите сравнить элементы массива один за другим. BTW: Использование 'using namespace std;' и использование класса с именем 'array' может оставить вас в беде. –
@Drop Использование цикла for. – Maya