У меня есть класс. В этом классе 2 поля. У меня есть целочисленный массив. Моя задача - перегрузить дружественный оператор «+», чтобы можно было добавлять значения полей из массива со значениями элементов массива.
Например:
class Test {
public:
double x, y;
Test() {
x = 0;
y = 0;
}
};
int main() {
Test a;
int arr[2] { 1, 2 };
a = arr[0] + a;
a.Show();
return 0;
}
Я ожидаю следующих значений:
x = 1;
y = 1.
Как я могу перегрузить оператор + для выполнения этой задачи? У меня нет никаких мыслей по этому поводу.
Код интерфейса класса:
#include <iostream>
#include <fstream>
using namespace std;
class Pyramid {
public:
double x, h, a;
Pyramid() {
x = h = a = 3;
}
Pyramid(double p, double k, double q) {
x = p;
h = k;
a = q;
}
Pyramid(const Pyramid& obj) {
this->x = obj.x;
this->h = obj.h;
this->a = obj.a;
}
Pyramid& operator=(Pyramid& obj) {
if (this != &obj) {
this->x = obj.x;
this->h = obj.h;
this->a = obj.a;
}
return *this;
}
Pyramid operator+(const Pyramid& b) {
Pyramid temp;
temp.x = this->x + b.x;
temp.h = this->h + b.h;
temp.a = this->a + b.a;
return temp;
}
Pyramid& operator*(int chislo) {
this->x *= chislo;
this->h *= chislo;
this->a *= chislo;
return *this;
}
Pyramid& operator++(int value) {
this->x++;
this->h++;
this->a++;
return *this;
}
~Pyramid() {
}
private:
double Sb = 10;
};
int main() {
setlocale(0, "");
int arr[]{ 1,2,3,4,5 };
Pyramid p2;
p2 = arr[3] + p2;
return 0;
}