У меня есть собственный математический класс Vector, который я использую в своем коде. У меня появилась новая необходимость обобщить мой векторный класс на n измерений вместо двух.
Мой вопрос: каков наилучший способ реализации перегрузок оператора, и есть ли значительные издержки для этого?
Теперь я храню значения в массиве
double *vals;
....
vals = new double[dimension];
Теперь я использую оператор + следующим образом:
Vector Vector::operator+(Vector v)
{
Vector ret = Vector(dimension);
for (int i = 0; i < dimension; i ++)
{
ret.vals[i] = vals[i] + v.vals[i];
}
}
Эта операция будет выполнена МНОГО и должна выполняться быстро. Это значительно хуже, чем старая версия (по скорости)?
Vector Vector::operator+(Vector v) {
return Vector(x + v.x, y + v.y);
}
Спасибо за любой вклад!