Вкратце: нужно для класса Vector (математический вектор в n-мерном пространстве с заданными координатами) перегрузить оператор постинкремента, чтобы он на единицу увеличивал все координаты вектора.
class Vector
{
private:
double* dim;
int dimCount = 0;
public:
Vector(int n = 1, bool input = false)
{
dim = new double[n];
dimCount = n;
if (input)
{
for (int i = 0; i < n; i++)
{
cout << "Введите " << i + 1 << " координату: "; cin >> dim[i];
}
}
}
int getDimCount()
{
return dimCount;
}
double* operator[](const int n);
Vector operator++(int);
}
double* Vector::operator[](const int n)
{
double* result = &this->dim[n];
return result;
}
Vector Vector::operator++(int)
{
Vector result = *this;
for (int i = 0; i < this->getDimCount(); i++)
{
++*this->operator[](i);
}
return result;
}
Вроде бы всё правильно написал, но:
cout << *(a++)[0];
выводит при заданной 0-координате значение на 1 больше, а не предыдущее (да и вообще со всеми координатами так).
Помогите, пожалуйста. Заранее спасибо