Перегрузка вектора в C ++ - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть задание для школы, где я должен переписать класс, чтобы он правильно использовал перегруженные операторы для выполнения базовых c операций, в частности, операторов +, -, = и <<. Мне дали спецификацию и реализацию. Реализация выглядит следующим образом: </p>

#include "Vector.h" 

// helper methods 
void Vector::CalculateMagnitude() { 
    this->_magnitude = sqrt( pow(abs(this->_v_x), 2) + pow(abs(this->_v_y), 2) ); 
}

// constructors 
Vector::Vector() { 
    this->_v_x = 0.0; 
    this->_v_y = 0.0; 
    CalculateMagnitude(); 
} 
Vector::Vector(double _v_x, double _v_y) { 
    this->_v_x = _v_x; 
    this->_v_y = _v_y;
    CalculateMagnitude(); 
} 

// setters 
void Vector::SetVX(double _v_x) { 
    this->_v_x = _v_x; 
    CalculateMagnitude(); 
}
void Vector::SetVY(double _v_y) { 
    this->_v_y = _v_y; 
    CalculateMagnitude(); 
} 

// getters 
double Vector::GetVX() { 
    return this->_v_x; 
} 
double Vector::GetVY() { 
    return this->_v_y; 
} 
double Vector::GetMagnitude() { 
    return this->_magnitude; 
} 

// operations 
Vector Vector::AddVector(Vector addMe) { 
    // create a temp vector 
    Vector returnMe; 
    // add corresponding vector components 
    returnMe.SetVX(this->_v_x + addMe.GetVX()); 
    returnMe.SetVY(this->_v_y + addMe.GetVY()); 
    // return the tempVector 
    return returnMe; 
} 
Vector Vector::SubtractVector(Vector subtractMe) { 
    // create a tempVector 
    Vector returnMe; 
    // subtract corresponding vector components 
    returnMe.SetVX(this->_v_x - subtractMe.GetVX()); 
    returnMe.SetVY(this->_v_y - subtractMe.GetVY()); 
    // return the tempVector 
    return returnMe; 
} 

// display methods 
void Vector::Display() { 
    cout << "<" << this->_v_x << ", " << this->_v_y << ">"; 
}

Мне интересно, достигну ли я этого, избавившись от раздела в разделе "// операции"? Кроме того, что мне нужно добавить в файл спецификации? В последнее время мне было очень тяжело с этим классом, и я не понимаю концепции, как раньше. Любая помощь с этим заданием будет принята с благодарностью. Я действительно не прошу, чтобы кто-то выполнил задание для меня, очевидно, я действительно хочу учиться и преуспеть в этом, но мне просто нужна небольшая помощь, чтобы начать.

Если требуется какая-либо дополнительная информация, пожалуйста, дайте мне знать, и я могу обновить этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...