Перегрузка оператора = в С++

пытаюсь оператор присваивания под массив типа класса, но не получается это сделать

#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};

но так не получается. Как это сделать, подскажите пожалуйста. И не пожалуйста, не пишите про другие ошибки, я знаю что они у меня есть, мне бы сейчас с этим разобраться. Спасибо!


Ответы (0 шт):