Перегрузка оператора = в С++
пытаюсь оператор присваивания под массив типа класса, но не получается это сделать
#include <iostream>
using namespace std;
class Point
{
private:
int x = 0;
int y = 0;
int z = 0;
int Size = 0;
Point *data;
public:
Point() {}
Point(int x, int y, int z)
{
this->x = x;
this->y = y;
this->z = z;
}
Point(const Point &other)
{
this->x = other.x;
this->y = other.y;
this->z = other.z;
}
~Point(){}
void operator = (const Point& other)
{
this->x = other.x;
this->y = other.y;
this->z = other.z;
}
Point operator = (int index)
{
Point other;
for (int i = 0; i < index; i++)
{
data[index] = other;
return data[index];
}
}
friend ostream& operator<<(ostream& os, const Point& other);
friend istream& operator>>(istream& is, Point& other);
bool operator ==(const Point &other)
{
if (this->x == other.x && this -> y == other.y && this -> z == other.z)
{
return true;
}
else
{
return false;
}
}
bool operator !=(const Point& other)
{
if (this->x != other.x || this->y != other.y || this->z != other.z)
{
return true;
}
else
{
return false;
}
}
Point operator+(const Point &other)
{
Point sum;
sum.x = this->x + other.x;
sum.y = this->y + other.y;
sum.z = this->z + other.z;
return sum;
}
Point operator-(const Point& other)
{
Point sum;
sum.x = this->x - other.x;
sum.y = this->y - other.y;
sum.z = this->z - other.z;
return sum;
}
Point operator*(const Point& other)
{
Point sum;
sum.x = this->x * other.x;
sum.y = this->y * other.y;
sum.z = this->z * other.z;
return sum;
}
Point operator/(const Point& other)
{
Point sum;
sum.x = this->x / other.x;
sum.y = this->y / other.y;
sum.z = this->z / other.z;
return sum;
}
Point& operator[](int index)
{
for (int i = 0; i < index; i ++)
{
return data[index];
}
}
};
ostream& operator<<(ostream &os, const Point &other)
{
os << "x: " << other.x << "\ty: " << other.y << "\tz: " << other.z << "\n";
return os;
}
istream& operator>>(istream &is, Point& other)
{
is >> other.x >> other.y >> other.z;
return is;
}
int main()
{
Point a;
a[2] = {(1, 2 ,3), (10, 22, 10)};
cout << a[0];
}
Я понимаю, что вполне можно это сделать через цикл, или создать объекты класса, но я хочу как в массиве int'a например:
int a[2] = {2, 15};
но так не получается. Как это сделать, подскажите пожалуйста. И не пожалуйста, не пишите про другие ошибки, я знаю что они у меня есть, мне бы сейчас с этим разобраться. Спасибо!