У меня есть задание для школы, где я должен переписать класс, чтобы он правильно использовал перегруженные операторы для выполнения базовых 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 << ">";
}
Мне интересно, достигну ли я этого, избавившись от раздела в разделе "// операции"? Кроме того, что мне нужно добавить в файл спецификации? В последнее время мне было очень тяжело с этим классом, и я не понимаю концепции, как раньше. Любая помощь с этим заданием будет принята с благодарностью. Я действительно не прошу, чтобы кто-то выполнил задание для меня, очевидно, я действительно хочу учиться и преуспеть в этом, но мне просто нужна небольшая помощь, чтобы начать.
Если требуется какая-либо дополнительная информация, пожалуйста, дайте мне знать, и я могу обновить этот вопрос.