Я пытаюсь использовать + для добавления 2 векторов (математический вектор). Вот мой код:Перегрузка оператора как функция функции пользователя
class Vector{
double v[Max_size];
int dim;
public:
int getDim() const;
Vector();
Vector(int n);
Vector(const Vector& a);
Vector add(const Vector&b);
friend Vector operator+(Vector summand1, Vector summand2);
};
Перегрузка операторов:
Vector operator+(Vector summand1, Vector summand2){
int dim1 = summand1.getDim();
int dim2 = summand2.getDim();
assert(dim1 == dim2);
Vector sum(dim1);
int i;
for(i = 0; i < dim1; i++){
sum.v[i] = summand1.v[i] + summand2.v[i];
}
return sum;
}
И как я использую его:
Vector m = v+t;
Когда я запускаю код, он всегда показывает, что т (0,0) (2D-вектор), который является значением по умолчанию, созданным конструктором. Что с этим не так? Благодаря!
Ваша проблема не в размещенном коде, можете ли вы разместить более подробную информацию, которая позволит нам запустить код? – WhiZTiM
Я определенно хочу увидеть конструктор копирования. –
BTW ... по соображениям эффективности я предлагаю вам прочитать следующее: http://stackoverflow.com/a/414260/1621391 – WhiZTiM