return a * k + b * m;
}
friend VECTOR3 operator*(double k, const VECTOR3 v) {
return v * k;
}
double getZ() const { return z; }
};
int main() {
try {
// Пример для VECTOR2
VECTOR2 a(1.0, 2.0), b(3.0, 4.0);
std::cout << "a = "; a.display(); std::cout << "\n";
std::cout << "b = "; b.display(); std::cout << "\n";
VECTOR2 c = a + b;
std::cout << "a + b = "; c.display(); std::cout << "\n";
VECTOR2 d = a * 2.5;
std::cout << "a * 2.5 = "; d.display(); std::cout << "\n";
double dot2 = a * b;
std::cout << "a . b = " << dot2 << "\n";
VECTOR2 e = VECTOR2::combine(2.0, a, 3.0, b); // c = 2*a + 3*b
std::cout << "2*a + 3*b = "; e.display(); std::cout << "\n";
// Пример для VECTOR3
VECTOR3 p(1.0, 2.0, 3.0), q(4.0, 5.0, 6.0);
std::cout << "p = "; p.display(); std::cout << "\n";
std::cout << "q = "; q.display(); std::cout << "\n";
VECTOR3 r = p + q;
std::cout << "p + q = "; r.display(); std::cout << "\n";
double dot3 = p * q;
std::cout << "p . q = " << dot3 << "\n";
VECTOR3 s = VECTOR3::combine(1.0, p, -1.0, q); // s = p - q
std::cout << "p - q = "; s.display(); std::cout << "\n";
} catch (const std::exception ex) {
std::cerr << "Error: " << ex.what() << "\n";
}
return 0;
}
Если нужно, могу:
• добавить оператор присваивания (operator=) явно,
• реализовать векторный (векторное) произведение для 3D,
• реализовать ввод/вывод через операторы >>/<<,
• или адаптировать стиль вывода/точность.